{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "VIz1pMbQD1R4"
   },
   "source": [
    "<a href=\"https://colab.research.google.com/github/mlelarge/dataflowr/blob/master/CEA_EDF_INRIA/VAE_filled_colab.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "mdARoOAOD1R6"
   },
   "source": [
    "# VAE for MNIST clustering and generation\n",
    "\n",
    "The goal of this notebook is to explore some recent works dealing with variational auto-encoder (VAE).\n",
    "\n",
    "We will use MNIST dataset and a basic VAE architecture. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "8jqTo-YBD1R7"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torchvision\n",
    "from torchvision import transforms\n",
    "from torchvision.utils import save_image\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "from sklearn.metrics.cluster import normalized_mutual_info_score\n",
    "\n",
    "def show(img):\n",
    "    npimg = img.numpy()\n",
    "    plt.imshow(np.transpose(npimg, (1,2,0)), interpolation='nearest')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "colab_type": "code",
    "id": "0x-83sgJD1R-",
    "outputId": "bc2f8509-bcf0-472a-aacd-83f1bc38fd41"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "cuda\n"
     ]
    }
   ],
   "source": [
    "# Device configuration\n",
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "print(device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 255
    },
    "colab_type": "code",
    "id": "ghfV6JTqD1SB",
    "outputId": "3d6f36c3-6e1c-444e-a759-a2e514afdf8f"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "0it [00:00, ?it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz to data/MNIST/raw/train-images-idx3-ubyte.gz\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "9920512it [00:02, 3796019.21it/s]                             \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting data/MNIST/raw/train-images-idx3-ubyte.gz\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "0it [00:00, ?it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz to data/MNIST/raw/train-labels-idx1-ubyte.gz\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "32768it [00:00, 68822.30it/s]                            \n",
      "0it [00:00, ?it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting data/MNIST/raw/train-labels-idx1-ubyte.gz\n",
      "Downloading http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz to data/MNIST/raw/t10k-images-idx3-ubyte.gz\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "1654784it [00:01, 1152364.88it/s]                            \n",
      "0it [00:00, ?it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting data/MNIST/raw/t10k-images-idx3-ubyte.gz\n",
      "Downloading http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz to data/MNIST/raw/t10k-labels-idx1-ubyte.gz\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "8192it [00:00, 25971.14it/s]            "
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Extracting data/MNIST/raw/t10k-labels-idx1-ubyte.gz\n",
      "Processing...\n",
      "Done!\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "data_dir = 'data'\n",
    "\n",
    "batch_size = 128\n",
    "image_size = 784\n",
    "z_dim = 20\n",
    "\n",
    "dataset = torchvision.datasets.MNIST(root=data_dir,\n",
    "                                     train=True,\n",
    "                                     transform=transforms.ToTensor(),\n",
    "                                     download=True)\n",
    "\n",
    "# Data loader\n",
    "data_loader = torch.utils.data.DataLoader(dataset=dataset,\n",
    "                                          batch_size=batch_size, \n",
    "                                          shuffle=True)\n",
    "\n",
    "test_loader = torch.utils.data.DataLoader(\n",
    "    torchvision.datasets.MNIST(data_dir, train=False, download=True, transform=transforms.ToTensor()),\n",
    "    batch_size=10, shuffle=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "60cK2n8iWBqa"
   },
   "outputs": [],
   "source": [
    "def plot_reconstruction(model, n=24):\n",
    "  x,_ = next(iter(data_loader))\n",
    "  x = x[:n,:,:,:].to(device)\n",
    "  try:\n",
    "    out, _, _, log_p = model(x.view(-1, image_size)) \n",
    "  except:\n",
    "    out, _, _ = model(x.view(-1, image_size)) \n",
    "  x_concat = torch.cat([x.view(-1, 1, 28, 28), out.view(-1, 1, 28, 28)], dim=3)\n",
    "  out_grid = torchvision.utils.make_grid(x_concat).cpu().data\n",
    "  show(out_grid)\n",
    "  \n",
    "def plot_generation(model, n=24):\n",
    "  with torch.no_grad():\n",
    "    z = torch.randn(n, z_dim).to(device)\n",
    "    out = model.decode(z).view(-1, 1, 28, 28)\n",
    "\n",
    "  out_grid = torchvision.utils.make_grid(out).cpu()\n",
    "  show(out_grid)\n",
    "  \n",
    "def plot_conditional_generation(model, n=8, fix_number=None):\n",
    "  \n",
    "  with torch.no_grad():\n",
    "  \n",
    "    matrix = np.zeros((n,n_classes))\n",
    "    matrix[:,0] = 1\n",
    "\n",
    "    if fix_number is None:\n",
    "      final = matrix[:]\n",
    "      for i in range(1,n_classes):\n",
    "        final = np.vstack((final,np.roll(matrix,i)))\n",
    "      z = torch.randn(8*n_classes, z_dim).to(device)\n",
    "      y_onehot = torch.tensor(final).type(torch.FloatTensor).to(device)\n",
    "      out = model.decode(z,y_onehot).view(-1, 1, 28, 28)\n",
    "    else:\n",
    "      z = torch.randn(n, z_dim).to(device)\n",
    "      y_onehot = torch.tensor(np.roll(matrix, fix_number)).type(torch.FloatTensor).to(device)\n",
    "      out = model.decode(z,y_onehot).view(-1, 1, 28, 28)\n",
    "\n",
    "  out_grid = torchvision.utils.make_grid(out).cpu()\n",
    "  show(out_grid)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "BBa5laJbD1SD"
   },
   "source": [
    "# Variational Autoencoders\n",
    "\n",
    "Consider a latent variable model with a data variable $x\\in \\mathcal{X}$ and a latent variable $z\\in \\mathcal{Z}$, $p(z,x) = p(z)p_\\theta(x|z)$. Given the data $x_1,\\dots, x_n$, we want to train the model by maximizing the marginal log-likelihood:\n",
    "\\begin{eqnarray*}\n",
    "\\mathcal{L} = \\mathbf{E}_{p_d(x)}\\left[\\log p_\\theta(x)\\right]=\\mathbf{E}_{p_d(x)}\\left[\\log \\int_{\\mathcal{Z}}p_{\\theta}(x|z)p(z)dz\\right],\n",
    "  \\end{eqnarray*}\n",
    "  where $p_d$ denotes the empirical distribution of $X$: $p_d(x) =\\frac{1}{n}\\sum_{i=1}^n \\delta_{x_i}(x)$.\n",
    "\n",
    " To avoid the (often) difficult computation of the integral above, the idea behind variational methods is to instea maximize a lower bound to the log-likelihood:\n",
    "  \\begin{eqnarray*}\n",
    "\\mathcal{L} \\geq L(p_\\theta(x|z),q(z|x)) =\\mathbf{E}_{p_d(x)}\\left[\\mathbf{E}_{q(z|x)}\\left[\\log p_\\theta(x|z)\\right]-\\mathrm{KL}\\left( q(z|x)||p(z)\\right)\\right].\n",
    "  \\end{eqnarray*}\n",
    "  Any choice of $q(z|x)$ gives a valid lower bound. Variational autoencoders replace the variational posterior $q(z|x)$ by an inference network $q_{\\phi}(z|x)$ that is trained together with $p_{\\theta}(x|z)$ to jointly maximize $L(p_\\theta,q_\\phi)$. The variational posterior $q_{\\phi}(z|x)$ is also called the encoder and the generative model $p_{\\theta}(x|z)$, the decoder or generator.\n",
    "\n",
    "The first term $\\mathbf{E}_{q(z|x)}\\left[\\log p_\\theta(x|z)\\right]$ is the negative reconstruction error. Indeed under a gaussian assumption i.e. $p_{\\theta}(x|z) = \\mathcal{N}(\\mu_{\\theta}(z), 1)$ the term $\\log p_\\theta(x|z)$ reduced to $\\propto \\|x-\\mu_\\theta(z)\\|^2$, which is often used in practice. The term $\\mathrm{KL}\\left( q(z|x)||p(z)\\right)$ can be seen as a regularization term, where the variational posterior $q_\\phi(z|x)$ should be matched to the prior $p(z)= \\mathcal{N}(0,1)$.\n",
    "\n",
    "Variational Autoencoders were introduced by [Kingma and Welling](https://arxiv.org/abs/1312.6114), see also [Doersch](https://arxiv.org/abs/1606.05908) for a tutorial.\n",
    "\n",
    "There are vairous examples of VAE in pytorch available [here](https://github.com/pytorch/examples/tree/master/vae) or [here](https://github.com/yunjey/pytorch-tutorial/blob/master/tutorials/03-advanced/variational_autoencoder/main.py#L38-L65). The code below is taken from this last source."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "WMrOsX2aD1SE"
   },
   "outputs": [],
   "source": [
    "# VAE model\n",
    "class VAE(nn.Module):\n",
    "    def __init__(self, image_size=784, h_dim=400, z_dim=20):\n",
    "        super(VAE, self).__init__()\n",
    "        self.fc1 = nn.Linear(image_size, h_dim)\n",
    "        self.fc2 = nn.Linear(h_dim, z_dim)\n",
    "        self.fc3 = nn.Linear(h_dim, z_dim)\n",
    "        self.fc4 = nn.Linear(z_dim, h_dim)\n",
    "        self.fc5 = nn.Linear(h_dim, image_size)\n",
    "        \n",
    "    def encode(self, x):\n",
    "        h = F.relu(self.fc1(x))\n",
    "        mu, log_var = self.fc2(h), self.fc3(h)\n",
    "        return mu, log_var\n",
    "    \n",
    "    def reparameterize(self, mu, log_var):\n",
    "        std = torch.exp(log_var/2)\n",
    "        eps = torch.randn_like(std)\n",
    "        return mu + eps * std\n",
    "\n",
    "    def decode(self, z):\n",
    "        h = F.relu(self.fc4(z))\n",
    "        return torch.sigmoid(self.fc5(h))\n",
    "    \n",
    "    def forward(self, x):\n",
    "        mu, log_var = self.encode(x)\n",
    "        z = self.reparameterize(mu, log_var)\n",
    "        x_reconst = self.decode(z)\n",
    "        return x_reconst, mu, log_var"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "I9X3lOjuD1SG"
   },
   "source": [
    "Here for the loss, instead of MSE for the reconstruction loss, we take BCE. The code below is still from the pytorch tutorial (with minor modifications to avoid warnings!)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "wBBLOKFaD1SG"
   },
   "outputs": [],
   "source": [
    "# Start training\n",
    "def train(model, data_loader, num_epochs):\n",
    "    for epoch in range(num_epochs):\n",
    "        for i, (x, _) in enumerate(data_loader):\n",
    "            \n",
    "            # Forward pass\n",
    "            x = x.to(device).view(-1, image_size)\n",
    "            x_reconst, mu, log_var = model(x)\n",
    "\n",
    "            # Compute reconstruction loss and kl divergence\n",
    "            reconst_loss = F.binary_cross_entropy(x_reconst, x, reduction='sum')\n",
    "            kl_div = - 0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp())\n",
    "\n",
    "            # Backprop and optimize\n",
    "            loss = reconst_loss + kl_div\n",
    "            optimizer.zero_grad()\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "\n",
    "            if (i+1) % 100 == 0:\n",
    "                print (\"Epoch[{}/{}], Step [{}/{}], Reconst Loss: {:.4f}, KL Div: {:.4f}\" \n",
    "                       .format(epoch+1, num_epochs, i+1, len(data_loader), reconst_loss.item()/batch_size, kl_div.item()/batch_size))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 153
    },
    "colab_type": "code",
    "id": "vPQkfJj7D1SI",
    "outputId": "eea6dcd7-fdcf-4d0a-c9ad-ac158ed21dc9"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch[1/2], Step [100/469], Reconst Loss: 174.3301, KL Div: 11.8515\n",
      "Epoch[1/2], Step [200/469], Reconst Loss: 141.0939, KL Div: 15.5343\n",
      "Epoch[1/2], Step [300/469], Reconst Loss: 124.7886, KL Div: 17.2723\n",
      "Epoch[1/2], Step [400/469], Reconst Loss: 117.7842, KL Div: 20.8367\n",
      "Epoch[2/2], Step [100/469], Reconst Loss: 104.2326, KL Div: 20.7569\n",
      "Epoch[2/2], Step [200/469], Reconst Loss: 99.3766, KL Div: 22.6540\n",
      "Epoch[2/2], Step [300/469], Reconst Loss: 92.0821, KL Div: 22.3379\n",
      "Epoch[2/2], Step [400/469], Reconst Loss: 90.2926, KL Div: 22.3118\n"
     ]
    }
   ],
   "source": [
    "# Hyper-parameters\n",
    "num_epochs = 2\n",
    "learning_rate = 1e-3\n",
    "\n",
    "model = VAE().to(device)\n",
    "optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)\n",
    "\n",
    "train(model ,data_loader, num_epochs=num_epochs)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "9UIuU-iaD1SK"
   },
   "source": [
    "Let see how our network reconstructs our last batch. We display pairs of original digits and reconstructed version."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 118
    },
    "colab_type": "code",
    "id": "SK6-6E_jD1SK",
    "outputId": "62cb643c-50a2-4e51-87aa-2953a96b432a"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nk0PmRCAQUG5uLlVXV1N2drZdfuc//PAD90zK5XJSKBScph4XF2cVLZFIREuWLKEtW7bQF198QYsW\nLaKdO3dSVlYWFRcX09mzZ23SbgDQqFGjuH5u2bKFIiMjbb5nhUJBI0aMoN27d1NeXh5lZmZS3759\nyd3d3RrN4cmX0AEgKSkJu3fvxpgxYzhJa9euXfj888+tztdSXV2NgwcPIiAgAK+++ioYhkFtbS2q\nqqpw4MABzJ492+oNnMZgS5a9x0Gv1yMvLw8//fQTdu7cCYlEApVKxUXg2eJqV1JSAm9vb6xYsQIr\nV660q+I9ESE5ORleXl7w9fVFTk4OcnNzcfPmTajVatTW1nJ7AtZAoVBAqVSie/fuD831qlWrMHr0\naHz77beP7RdQJ41GRUUhODgYSqUSUqkUDMPAYDAgJCQEWq0WJpMJ5eXlSE9P/49nhDSbzbh9+zZK\nS0uRkZGB2tpaqNVq5OTkNIiyNJvNKCgoQFVVFQQCAcRiMW7fvm1T7U52o3rUqFG4ceMGbt26ZVPf\nGYaBm5sbXFxcYDQa7XYF3L17NyZNmgTg3xGXZrMZp06dajK+5EGYTCaIRCJERUUhICAALv+/vfML\nrbKM4/jn6/5oh0abNqemZLJpeFErstS6SCU0iW7cRZLMC6GbLgwG4QgmgTfdZAURhUU3uWIsmAgi\npiLsxvXHZjY9OTVo6RqLae4mKn9dvM85nIad1v685/i+vw88nOf5vQ88z/ly9tvz/p5/mUx+qfKp\nU6fYu3fvlM9G6e7unpFJSogiB0eOHKG3t5eamhpu3brF0NDQ7PwGSz1Cz6WWlhbbtm3b/x6VT0xz\n5syxRYsW2YEDB6y3t9f27dtnjY2Nlslkpj1SKVUqjAeXqg81NTXW1NRkzc3N1tjYaLW1tVZdXT2t\n3Zc9PT3/2MlbmEZHR621tfU/R9JVVVVWW1tra9assY6ODjt48GB+l+OVK1esv7/furq6rL293dav\nX291dXUl0TI3Cp9M2xUVFbZw4UJraGiY0u9WUn50uWrVqmm9kVZWVtrKlSvt6tWrls1mra2tbVo6\n1NfX244dO2x0dDS/VDGbzdrmzZun9D03bNhgnZ2dNjQ0ZGNjYzY8PGx9fX22ZMmSae9gLbPkd4o6\n6aHwzB8gHztP412imUyGmzdvMjAwMKXYdCG53aGbNm3iwoULXL58mfHx8Rnq6cyRgnuDJ3WnqDt0\nx3GKkjs6YSphNWfG8EuiHceZPhOPp3DKl5LvFHUcx3FmhrhH6ONANuY27yTuBaZ3elaycX2K4/oU\n507W5/7JVIrboWcnEwdKK5K+cn3+HdenOK5PcdKgj4dcHMdxEoI7dMdxnIQQt0P/IOb27jRcn+K4\nPsVxfYqTeH1iXYfuOI7jzB4ecnEcx0kIsTl0SVskZSUNStoTV7vlhKSPJI1IOldgmy/pmKSL4bMu\n2CXpnaDXWUmPlq7ns4+kZZJOShqQ9L2k3cHu+gCS5knqk9Qf9Hk92B+QdDro8Jmk6mCfG8qD4fny\nUvY/LiRVSDoj6XAop0qfWBy6pArgXeBZYDWwXdLqONouMz4Gtkyw7QGOm1kTcDyUIdKqKaSXgPdi\n6mOp+BNoM7PVwFrg5fAbcX0ifgc2mtnDQDOwRdJa4A1gv5k1AmPArlB/FzAW7PtDvTSwGyi8bTpd\n+sR0yuI64GhBuR1oj/Okx3JJwHLgXEE5CywO+cVEa/UB3ge2365eGhLQAzzj+txWmwzwDfAE0UaZ\nymDP/50BR4F1IV8Z6qnUfZ9lXZYS/dPfCBwGlDZ94gq53Af8VFAeCjYHGszsWsgPAw0hn1rNwuvv\nI8BpXJ88IZzwLTACHAMuAdfNLHfpaKEGeX3C8xvAgnh7HDtvAa8CuRPEFpAyfXxStIywaLiQ6mVH\nku4GuoFXzOy3wmdp18fM/jKzZqKR6OPAgyXuUtkg6TlgxMy+LnVfSklcDv1nYFlBeWmwOfCLpMUA\n4XMk2FOnmaQqImf+iZl9HsyuzwTM7DpwkiiEUCspd4RHoQZ5fcLze4BfY+5qnDwJPC/pR+BTorDL\n26RMn7gc+pdAU5hxrgZeAA7F1Ha5cwjYGfI7iWLHOXtrWM2xFrhREHpIHIpuKPgQOG9mbxY8cn0A\nSfWSakP+LqL5hfNEjr0lVJuoT063FuBEeMNJJGbWbmZLzWw5kX85YWYvkjZ9Ypyw2Ar8QBT3e63U\nkwelSEAncA34gyiet4sobnccuAh8AcwPdUW0MugS8B3wWKn7P8vaPEUUTjkLfBvSVtcnr89DwJmg\nzzmgI9hXAH3AINAFzA32eaE8GJ6vKPV3iFGrp4HDadTHd4o6juMkBJ8UdRzHSQju0B3HcRKCO3TH\ncZyE4A7dcRwnIbhDdxzHSQju0B3HcRKCO3THcZyE4A7dcRwnIfwNgmOjwKCoZjAAAAAASUVORK5C\nYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_reconstruction(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "KjiCIs3LD1SO"
   },
   "source": [
    "Let see now, how our network generates new samples."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 179
    },
    "colab_type": "code",
    "id": "ATtfU48kD1SP",
    "outputId": "36bde944-fd2c-4539-9527-ee602694b441"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_generation(model)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "_pWAbK8pD1SS"
   },
   "source": [
    "Not great, but we did not train our network for long... That being said, we have no control of the generated digits. In the rest of this jupyter, we explore ways to generates zeros, ones, twos and so on. As a by product, we show how our VAE will allow us to do clustering.\n",
    "\n",
    "The main idea is to build what we call a Gumbel VAE as described below."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "qdKloPELD1SS"
   },
   "source": [
    "# Gumbel VAE\n",
    "\n",
    "Implement a VAE where you add a categorical variable $c\\in \\{0,\\dots 9\\}$ so that your latent variable model is $p(c,z,x) = p(c)p(z)p_{\\theta}(x|,c,z)$ and your variational posterior is $q_{\\phi}(c|x)q_{\\phi}(z|x)$ as described in this NIPS [paper](https://arxiv.org/abs/1804.00104). Make minimal modifications to previous architecture...\n",
    "\n",
    "The idea is that you incorporates a categorical variable in your latent space. You hope that this categorical variable will encode the class of the digit, so that your network can use it for a better reconstruction. Moreover, if things work as planed, you will then be able to generate digits conditionally to the class, i.e. you can choose the class thanks to the latent categorical variable $c$ and then generate digits from this class.\n",
    "\n",
    "As noticed above, in order to sample random variables while still being able to use backpropagation required us to use the reparameterization trick which is easy for Gaussian random variables. For categorical random variables, the reparameterization trick is explained in this [paper](https://arxiv.org/abs/1611.01144). This is implemented in pytorch thanks to [F.gumbel_softmax](https://pytorch.org/docs/stable/nn.html?highlight=gumbel_softmax#torch.nn.functional.gumbel_softmax)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "8dalEf3ND1SU"
   },
   "outputs": [],
   "source": [
    "# CVAE model\n",
    "class VAE_Gumbel(nn.Module):\n",
    "    def __init__(self, image_size=784, h_dim=400, z_dim=20, n_classes = 10):\n",
    "        super(VAE_Gumbel, self).__init__()\n",
    "        self.fc1 = nn.Linear(image_size, h_dim)\n",
    "        self.fc2 = nn.Linear(h_dim, z_dim)\n",
    "        self.fc3 = nn.Linear(h_dim, z_dim)\n",
    "        self.fc4 = nn.Linear(h_dim, n_classes)\n",
    "        self.fc5 = nn.Linear(z_dim + n_classes, h_dim)\n",
    "        self.fc6 = nn.Linear(h_dim, image_size)        \n",
    "        \n",
    "    def encode(self, x):\n",
    "        h = F.relu(self.fc1(x))\n",
    "        mu, log_var, log_p = self.fc2(h), self.fc3(h), F.log_softmax(self.fc4(h), dim=1)\n",
    "        return mu, log_var, log_p\n",
    "    \n",
    "    def reparameterize(self, mu, log_var):\n",
    "        std = torch.exp(log_var/2)\n",
    "        eps = torch.randn_like(std)\n",
    "        return mu + eps * std\n",
    "\n",
    "    def decode(self, z, y_onehot):\n",
    "        latent = torch.cat((z, y_onehot),dim=1)\n",
    "        h = F.relu(self.fc5(latent))\n",
    "        x_reconst = torch.sigmoid(self.fc6(h))\n",
    "        return x_reconst\n",
    "    \n",
    "    def forward(self, x):\n",
    "        mu, log_var, log_p = self.encode(x)\n",
    "        z = self.reparameterize(mu, log_var)\n",
    "        y_onehot = F.gumbel_softmax(log_p)\n",
    "        x_reconst = self.decode(z, y_onehot)\n",
    "        #print(alpha)\n",
    "        return x_reconst, mu, log_var, log_p"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "ZU2K6-AYD1SV"
   },
   "source": [
    "You need to modify the loss to take into account the categorical random variable with an uniform prior on $\\{0,\\dots 9\\}$, see Appendix A.2 in the NIPS [paper](https://arxiv.org/abs/1804.00104)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "As4JdeVrD1SW"
   },
   "outputs": [],
   "source": [
    "def train_G(model, data_loader, num_epochs, verbose=True):\n",
    "    nmi_scores = []\n",
    "    model.train(True)\n",
    "    for epoch in range(num_epochs):\n",
    "        all_labels = []\n",
    "        all_labels_est = []\n",
    "        for i, (x, labels) in enumerate(data_loader):\n",
    "            # Forward pass\n",
    "            x = x.to(device).view(-1, image_size)\n",
    "            x_reconst, mu, log_var, log_p = model(x)\n",
    "            p = torch.exp(log_p)\n",
    "            \n",
    "            reconst_loss = F.binary_cross_entropy(x_reconst, x, reduction='sum')\n",
    "            kl_div = - 0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp())\n",
    "            p_uniform = 1/n_classes * torch.ones_like(p)\n",
    "            entropy = torch.sum(p * torch.log(p / p_uniform))\n",
    "\n",
    "            # Backprop and optimize\n",
    "            loss = reconst_loss + kl_div + entropy\n",
    "            optimizer.zero_grad()\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "            \n",
    "            if verbose:\n",
    "                if (i+1) % 100 == 0:\n",
    "                    print (\"Epoch[{}/{}], Step [{}/{}], Reconst Loss: {:.4f}, KL Div: {:.4f}, Entropy: {:.4f}\" \n",
    "                           .format(epoch+1, num_epochs, i+1, len(data_loader), reconst_loss.item()/batch_size,\n",
    "                                   kl_div.item()/batch_size, entropy.item()/batch_size))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 153
    },
    "colab_type": "code",
    "id": "XmD7605vD1SY",
    "outputId": "de735c2e-dc50-4c5b-ad34-d613e1e685de"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch[1/2], Step [100/469], Reconst Loss: 171.2331, KL Div: 11.0588, Entropy: 0.0312\n",
      "Epoch[1/2], Step [200/469], Reconst Loss: 130.4052, KL Div: 15.2671, Entropy: 0.0261\n",
      "Epoch[1/2], Step [300/469], Reconst Loss: 122.5407, KL Div: 17.2384, Entropy: 0.0268\n",
      "Epoch[1/2], Step [400/469], Reconst Loss: 114.8142, KL Div: 19.9413, Entropy: 0.0356\n",
      "Epoch[2/2], Step [100/469], Reconst Loss: 109.2273, KL Div: 21.6982, Entropy: 0.0326\n",
      "Epoch[2/2], Step [200/469], Reconst Loss: 102.2649, KL Div: 22.3947, Entropy: 0.0344\n",
      "Epoch[2/2], Step [300/469], Reconst Loss: 96.5270, KL Div: 23.1613, Entropy: 0.0279\n",
      "Epoch[2/2], Step [400/469], Reconst Loss: 93.8908, KL Div: 23.3716, Entropy: 0.0248\n"
     ]
    }
   ],
   "source": [
    "# Hyper-parameters\n",
    "num_epochs = 2\n",
    "learning_rate = 1e-3\n",
    "n_classes = 10\n",
    "\n",
    "model_G = VAE_Gumbel().to(device)\n",
    "optimizer = torch.optim.Adam(model_G.parameters(), lr=learning_rate)\n",
    "\n",
    "train_G(model_G, data_loader, num_epochs=num_epochs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 118
    },
    "colab_type": "code",
    "id": "OQl9oLXGD1Sa",
    "outputId": "7c781a9a-ab30-49c0-b516-a1252a493474"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_reconstruction(model_G)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Mr638oBuD1Sc"
   },
   "source": [
    "This was for reconstruction, but we care more about generation. For each category, we may generate n=8 samples with the plot_conditional_generation() function. We expect that on each line only one digit should be represented."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 269
    },
    "colab_type": "code",
    "id": "IfHC2HIJD1Sf",
    "outputId": "4f94f858-aac3-4c60-e677-28f859198577"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAANoAAAD8CAYAAAAR6LrwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXd43NWZ7z+/6TOaIo26ZFVbljuu\nYBNwXOglQEIIJUASErLLzV5294ZLdm/KPknYzT5JuCRh4wtJaMlCwAkYL8EG24DBuOIuy7LVe9eM\npvff/cOck5GwpBnZJiKr7/P4kS3PnN/5nXPec97zlu+rqKrKNKYxjQsLzV+6A9OYxn8HTAvaNKbx\nMWBa0KYxjY8B04I2jWl8DJgWtGlM42PAtKBNYxofAy6YoCmKco2iKKcURWlQFOVbF+o505jGJwHK\nhfCjKYqiBU4DVwIdwAHgDlVVa8/7w6YxjU8ALtSJdjHQoKpqk6qqEeD3wE0X6FnTmMaUh+4CtVsM\ntCf9uwO4ZKwPK4oyHZ4yjU8kVFVVUvnchRK0CaEoyv3A/X+p509jGh8nLpSgdQIlSf+e8eHvJFRV\nfRJ4EqZPtKkARVFQFAVVVeVPgOlY2PODCyVoB4AqRVEqOCNgtwN3XqBnTWMSUJSzazwajQZFUdBq\nteh0OqLRKKqqEovFprTQifeZqn28IIKmqmpMUZRvAG8AWuApVVVPpPp9sbsCGAwGtFotDocDk8mE\nRqPB7XYTDAYJh8MkEonk5474OV77Go2GjIwMEokEiUSCUCg0oq1zQXL/xd81Gg16vZ54PE4ikSAa\njabU13SfKzBeuwaDgYKCAiwWC1qtFlVViUaj6PV6YrEYiUQCq9WKoih0d3fj9/sJBoPE4/FJ91e8\nv8ViIT8/H1VV8Xg89PX1kUgkUm5XjKXBYOCuu+7ijjvuYMmSJRiNRoaHh6mrq+Puu++mt7eXWCyW\ncv/EPCmKItfB+ZybC3ZHU1X1deD1yXxXvLBerycnJ4fCwkLuuusuZsyYgVar5fTp0xw4cIDjx4/j\ndrvlQvjwuSNUn7O1rdfrsdvtzJ49m56eHtxut9y5z3VwdTodGRkZmEwmcnNzyczMZPny5eTn56PV\nann55Zfp6uqiu7ubeDwu+5zqmIjPj/6ORqPB6XSi0+nw+/34fL6ztqvRaORnxDtrtVrMZjOVlZUY\nDAYikQgej0f+fzr9HN1njUaD0Whk8eLFrF27luXLl5OVlUV7ezsvvPACO3bsIBKJpNWexWLB6XTy\nN3/zN1RVVWGxWFAUBYfDQVFREfF4fMwTe3R7o9/LZrOh1+vxeDyEw+G03nc8/MWMIeNBo9FgMpkw\nmUzk5eUxf/585s2bB8CRI0d49tlniUaj3HTTTRQVFdHX18cf//hHuru7iUQiZ1VzxCRVVlbyuc99\njpkzZ/Lss88SDofl6aLVaj9yqmm12pTVJkVRsFqtFBUVsXjxYj71qU9RUFBARkYGfX19NDQ0UFpa\nSnV1Nbt376arq4tgMHjWvib/3Wg04nA4WL16NSUlJXg8HlpbW9FoNOTm5nLFFVdQXl6Ow+Hggw8+\n4K233uLFF1+UAjIawWCQQCAg29dqtRiNRgoLCwmFQgwODtLb24tGo5HClsppL/qt0WikFvK9732P\nFStWYLfbicfj5ObmotPpMBgMVFRUEIlEUhZgoc7a7XasViu//vWvpVB8+ctfxm63c+jQIQYGBsY8\nzZI1jdHvpNfreeKJJ6ioqGDTpk3867/+a0r9SgVTUtAAEokEwWCQ3t5eTp06xc6dO/H5fOzbt4/2\n9na0Wi1Wq5UlS5bgdrtpamoiHA7T398/5gJTFIWqqirmzZuHVqult7eXaDQq29Lr9fj9frnDmkwm\n9Ho9brc75cVgNpspKyujoqICh8NBfX09r7/+Oi6Xi/7+fhYtWsT69euJx+Ns2bLlI+qvgEajkX+c\nTiezZs3i7rvvJhAI4Ha7CYVC8j6lqio6nQ6tVks8HufQoUNjCsbZTkNxGpSUlFBXV8fg4CDhcFi2\nn4rKmKx6GQwGMjMzWb16NZdddhkej4ef//znZGVlsWbNGsrKymhqauLEiRMpj6s4GS0WCzabDYPB\nwKZNm/B4PMRiMXp7e7nqqqvkxpAKkjUfjUZDaWkpV111FaqqUlZWllIbqWJKCloikZB3Ga/XS1tb\nG8eOHcPn8+HxeIAz94zZs2fjcDjkH4vFgl6vlyfU2RCJRAgEArS2ttLf3y9Vp89+9rMsWLCA3//+\n9zQ1NRGLxZg3bx6RSISjR48SjUZT2tUdDgdLliwhOzubY8eO0djYyIEDB4jFYiiKgsVi4bLLLqOk\npASXy8W7776L1+sd0YZQb00mE4lEgsrKSi699FL0ej0nT55k165dHDp0iHg8jlarJRwOY7FYaG9v\nZ+vWrfT29o7Zv7OpnHl5edx+++0sXLiQEydOEIlE5N1Vp9ONsEiOB3GSWa1Wli9fzqJFi/B4PLzx\nxhu88sorlJWVkZeXRyAQ4J133qG+vn7C8RQwm81kZGRQVFREOBzG7/fT398v56SmpobKykpmzJiR\n8qaQPJ9Wq5U1a9ZgMBgYHh7m4MGDKfctFUxJQVNVVZ4qPp+PUChEf38/8+fPJysri0WLFlFeXk5+\nfj4tLS309vbS1taG2+0mEomc9UQTO3lfXx9PPfUU9fX1DA8Py52ypKSEYDDI0NAQOTk5zJs3j5kz\nZ+L3+6mrq0v5Yl1QUCBPwZdffpnu7m6i0ai8WzzyyCOUl5ej1WopKChAp/voFIhFLQwU8+fPJzMz\nk7//+7+nubl5hLql0Wjo6uri1Vdf5e2332Z4eJhwOJyyqnvjjTfy7W9/m5KSEv72b/+WtrY2YrEY\nOp1O3neFujXWRiPUcpPJhFarJRqNUltbS21tLf/+7/9OOBwmPz+fW2+9lfXr1/Pzn/+c1157jYGB\ngZTGVKfTsWzZMsrLywkGg7zzzjsMDw/LeVYUhXXr1nHJJZfQ19c37v1MrIPR6rnD4WBoaIjGxkb8\nfj+JRCKlzSVVTFlBG+3TCYfDdHZ2Eo/HycnJoaKignfffZf29nb0er08BcdTc1RVxev1StVI/E5V\nVY4cOYLP50Or1ZKVlUVWVhZWq5VoNIrZbMbn803Yb0VRiEajHD9+nPb2drq6uohGo+h0OvLy8li1\nahUWi4V4PE5jYyPHjx+XJ/Tofop7kU6nY/bs2ZSVlaHT6eSpEY/H5Sah1+tpbW2VRp1U71MajYaq\nqircbjd1dXVs376dSCSCwWDAarUCEI/HicVi8k43HnQ6HTqdDp/PR3t7u1yser2e++67j7Vr1+L1\nenn//ffxeDwpW3k1Gg0zZ87EZDLR0tKC2+2WBg9hPb7kkkswmUyEQqGU2hy9RsLhMD6fj+zsbPLy\n8vjMZz7Db37zm5TaSgVTUtAEki/Xvb29+Hw+LBYLoVCI559/nu7ubjIzMyktLZW7+ESTJ6xoQiUS\nz+np6cFms1FcXMyCBQuorq5Gq9UyODiYklVMTLrX66Wzs1OalxOJBBaLBYfDQSQSkcaaY8eO0dDQ\ncNZNIfm0cjgcFBYWUl1dzdVXX827776Lx+NhaGgInU7HrFmzyM/P5+TJk2mbs3U6HbW1tezZs4eT\nJ0/i8/mk6XzlypVkZmZy+PBhvF7vhIKm0WjIzMwkkUjIe5OqqhiNRjIzM5k/fz6qqtLc3CzvxqlA\nnJQOhwOPx0NjY6PcTDUaDXa7nfnz51NZWUk0GqW/vz/lMUhGJBJBURRpdZw7d+5HTrRzOeGmpKAl\nX6yLiorIz8/HaDSSSCQYGhqivb2dQCCA0WhEURScTic+n2+EmjMeioqKcDqdZGdnU1VVRW5uLuXl\n5USjUZYvX45Op8PlcnHgwAGpRmg0mnFVJ61Wi8ViIScnB4PBgNlsJpFIMDw8TH9/PydPnuTUqVOs\nWrWKK664gt///vd4PJ4xBU2j0WC1WsnKymLXrl2cPn2aYDBIVlYWAwMD2Gw2Lr/8cm655RZ27tzJ\nBx98IL87nmtDq9VKE79Op2Pr1q3SjyWsj+I+9KlPfYrPf/7zPPXUU/T394+54Yh73t///d9jNBr5\nxS9+QV9fH1arlVWrVjF79mz8fj9ut5sjR47IU+dsVt7RKCgoYM2aNaxbt46XXnqJWCyG0WhEo9Gw\naNEiZs6cidFo5Nlnn0Wn09HW1pbSGhg93m63m127duHxeFAUhS1btozY8ESbYxnaJsKUFDRhbbNa\nrdx+++1UVVXh9/vZs2cPkUiEzs5OufhLS0spLi6mra1twt1GLKZVq1YxZ84c5s2bh8Fg4PTp0wwM\nDLBs2TIyMjIIhUIMDw9z/PhxGhsbCQQC4y4I0derrrqK22+/nXg8jtls5o9//CNvvPHGCFXQ7XbT\n2NhIV1fXuEIh1Ga/38/LL79MKBQiGAxKq5rBYODgwYNkZWUxNDQk74HjOX+FmmW329HpdPKOKp6V\nkZGB0WgkHo9z+vRpbrjhBmlgGm9s9Xo9y5cvZ/Xq1VgsFoLBIP39/WRlZdHV1UVXVxeLFy8mFAoR\niURGWEvHg0ajYcWKFVx//fXMnj2bK664gra2NjweD1qtlrlz5zIwMCBPd4PBkJZKOnq8w+EwDQ0N\nZGdns2vXLtk/sUEBaTnXkzHlBE2oNKWlpaxcuZKvf/3rDA0Nceedd0oBA6TaYLfb6e/v59ixY3i9\n3nEHQVVVurq6ePnll3E6nfT09BAIBIhGo2zYsIHKykpeeOEFfv3rX3Pq1Cl5mk00sJmZmVxzzTV8\n85vfZNasWQwODvLiiy+yceNGotEoeXl5cmG9/fbb/Nd//RdDQ0Pj7o5CFXO5XAwODn5E1YpGo/T2\n9rJz505UVcXlchGLxcZt02AwsGzZMj796U9z6NAh6uvrpRqWSCSoqqqSbdxwww0UFBSwceNGdu7c\nOabzVlEUiouL+cxnPkNmZiYDAwN0dXVx8uRJDh06RF9fHyaTibvuugur1Uo8HiccDkur8njQ6/Vc\ndNFFFBQUyMiUvLw8urq6CAQCDA8Pk5GRgdPppLi4GI/Hg8vlmpQgiHWnqirBYFBqS8nXkb861VFV\nVcxmM/PmzcPv93Po0CFpDQOkalZQUEA8HufkyZPSCjXRQEQiEQYHBz+yeK+66ioMBgOPPfYYDQ0N\nacX2GY1GZs+ejV6vJxQK8c477/D4448TDAbJyMjga1/7Gg0NDfT29nL48OGUwr00Gg3xeFyeWKNV\nV2G0sVqt1NbWjmltTYZQSbOzs6WPULRrMpnIyclh1qxZFBQUcNlll5FIJNi7d++Ep0Q0GsXn8+H3\n+6mvr+fdd9+ltrZWagKRSITc3FxpWBKLN1UNRLhkBgYG6OvrY2BggHg8Tn5+PpdeeilVVVUYDAZe\nf/31lO9+oyHUZnGq5+fnf6Qv52KBnJKCBsi7REdHB8ePHx9hys3LyyM/Px+Hw4HP56Ozs1PukhNB\n7KTJg6bT6cjJySEej9PQ0JD2ZAkLmKqqDAwMsGPHDlwuF3q9nqVLl3L11VeTnZ3NSy+9hM/nS2lD\niMfjWK1WbDbbiE1GwGazUVZWhs1mIxqNyvvTeO0qioLb7UZRFGbMmEFzczNmsxlFUTCZTNL3VVFR\nQVtbG0ePHqWxsXHc6A3x3sePH2fhwoX4fD4aGhpGqNsilM7v95OTk5Oy+pVIJKipqaGkpARVVQmF\nQmRlZUkDydVXX83VV1+Nw+GgtraWWCw2qbCp5FhUnU5HPB4fsQbO5hJIF1NO0MRLd3Z28vbbb5Od\nnU1FRQXXXXcdDoeD8vJyFi1aRCAQ4Be/+AWtra0EAoG04vGSP2Mymbj99tsJh8P89re/ndSO6HK5\n2Lx5MzqdjtWrVzN37ly0Wi3Lli2jurqaHTt28Nxzz9Ha2pqyZTAej9PR0UFpaSlz5szB4/HIi77F\nYuHGG2/EYrFw+vRpuahTOc07OjrYsGEDhYWF+Hw+vF6vdEFs2rSJAwcOEI/H2b9/vwxPm0gd7+/v\n57333mNoaAi9Xi9PSoDc3Fy+8pWvYDQa6evr4+233075ZIjH47z++uscPnyYFStWkJmZidls5oYb\nbiAvL4/rrrsOq9VKW1sbP/jBDxgYGJjw+jDWO8RiMbxeLz//+c/Jzs5m69atH2nnr+pEE2qF3++n\nsbGRpqYmnE4n/+t//S+sVis6nY7W1lZOnDhBd3c3Ho9nxEmWjh4t9HJFUdi5cyevvfbapPoci8Vo\naWlh+/btZGRkkJubS1FREaFQiOPHj/Pqq6/S0dGRlsVKTLzf76e0tJT8/HwyMzMByMnJobKyErfb\nLc3uqZ4Q/f39DA0N0dbWJk9C4Rw/deoUzc3NckdPRV0S321vb5dGIYfDIU8zEVDd2NhITU0Nzc3N\nKc+PqqoEAgFaWlro7OyUc5WXlyejZLxeL319fTQ3N59TKo94jz179pCXl8fQ0NCk2hkLF4ScJ+1O\njEr8HH1EC6dn8u+j0eikTa3J7YqQIWHRuxCpMpNpU3zXaDRSXV1NMBiUC0k4wIWa5vf7z0ufzxVn\nC22CM9cAk8lEOBxOy9f3l0CqqUZJn0lJn5ySgjbBZ89bWIxwziqKkpIx4S+J0T5Cg8FAIpGQTvGp\njvH8kJ9k/NUK2vmEuEeIXXgqjMVEONuF/JPQ779WpCpoU+6O9nHik7jDTgvVJxPTlODTmMbHgP/W\nJ1oyku9+5/MeeD4xrTZ+cvFXI2hn439IByJqory8nMrKSpxOJ/v376e/v/8vbtUThhBBpiOSMidr\nxUtOQRrLyjZ605lKm8+5zvVfAp8YQUtOaxHMTSKwWCRParVaAoHApE3IiqKwaNEinE4nHo9Hxtf9\npRdZMkWAoijEYjGCweCk3QbCpWG1WqmurgbOJNgODg7K9xZhYucrTeR8QuTlpcM3MhFEoEReXh5F\nRUVYrVYaGhpwuVxn5XVJu8/npZcXEDqdjtzcXBYsWEAsFmNgYIDe3l7sdjulpaVkZmYSiUTw+/1Y\nLBY6Ozs5evRo2gNjsVhYtmwZbreb/fv3EwgE8Hq9KVsjtVotdruda6+9FlVVOXTokMydgj9nJIgN\nIt1AVZPJRHFxMYCk20v3pBFhbSaTifXr17NgwQJmzpxJe3s7/f391NTUkJWVhV6vZ8mSJcRiMR59\n9FGZXzZe1nEyyc/SpUupqqrikksuoaSkhHg8zokTJ9i3bx/79++XmQvpQjwjNzeXWCwmA7PPRQi0\nWi2FhYW88MILFBQUUFBQgMlkQlEU+vr6eOONN/iXf/kXGRs7WeGe8oKWnZ3NnDlzqKyspLm5mVAo\nhMViITc3F4fDIWMcs7KyJD9julAUheuvv57c3Fy2bNkiM5VT8auJk2bGjBnccsst3H///QwPD1Nf\nX88jjzxCMBjkc5/7HBdffDE2m40dO3awf/9+9u/fLx3kE02cwWCgrKyM1atX4/P5qK2tlWkz4tRN\nBeI5ghi1traW7du309/fLyNsnE6nDPvKyclhy5YtHD9+/CO8JqPHQMRLZmRkcM8997By5Ury8vIw\nm83o9XrWrVvHF7/4RZ544gkeeeSRSS1WkdGwcuVKjEYj+/btk3luk4lx1Gg05OTkcM8997Bo0SL5\nDsn5ZyL4Oicnh+Hh4QkzJMbClBY0RVHIzMwkLy+PgYEB6uvrGRgYoKCggOLiYklvEAgEMJvNxONx\n3G532s+YPXs211xzDS0tLXR1daWUwpEMi8VCdXU1t99+O3l5eZhMJlwuF9deey0XXXQRt956KxqN\nhlgsRm5uLkajURL+pNK/nJwcLr30UnJzc+no6GBwcBCbzQakFyEjQqpisZgk4RkYGJACL/g+zGYz\nTqcTm81GZWUldXV18m44Xv6c+G51dTWZmZloNBpJbScyl8WCThci+/nTn/40//AP/4DH4+Hqq68m\nFAqxY8cONm3aNCIEK5WTXqTv3H///XKTFqcywNatW3n++edHZOVPFlNS0MQOaTQaufXWWykrK+Ox\nxx7D7XZjNpv54Q9/SDgc5lvf+hYul0tyawi9PVW89NJLXHvtteh0Oj7zmc+we/fuSTEIR6NROjs7\n+fWvf82sWbM4dOgQTU1NMvX+4MGDdHV10draitFoxOVypZSgKGIxf/rTn1JdXc0Pf/hD9uzZg8/n\n49prr6WsrIyamhree+89otHohHdTsWBE/ODoXCubzUZpaSnZ2dn86U9/QlEU9u3bN4KaYKyMcECm\nxLjdbvr7+9m7dy8/+clPcDqdrFu3jhkzZtDT0yMj5NOB2Wzmzjvv5Dvf+Q56vZ6mpia0Wi0zZszg\nhhtu4PLLL+dXv/oVp0+flrQEE83hPffcw4033ojX6+WnP/0pgUCAxx57jHg8zvHjx7nvvvtQ1TN0\nDNnZ2RgMhr+eDOtkHg+tVkt+fj56vZ6srCxyc3O5+OKLmT9/PnV1dTLlRNx5BEnPRAMsTokbb7wR\nnU5Hd3c3e/bskTuaIL9JJUhVZOY2NTUxNDSEw+FgeHgYj8eD3+/n9OnTcuPQ6XRkZ2ennJwoNpvq\n6mry8vIIhULS+njFFVcwY8YMHA6HTHpN9b6SLDBivA0GA/PmzUOv1+Nyudi4cSOJREJuZOJ740GM\nGcDQ0BBHjx6lp6eHvr4+vF6vpI2wWCxp33XMZjOrV68mIyODgwcP8thjj+F0OvnSl74keS+Lioqo\nr69Pud3a2loOHjyI2+1m69atXHLJJcTjcQYHB/nOd74j2xHpNwaDIeX+jsaUE7Rks7PNZuP06dNk\nZGTwwAMPSLq5lpYWWltbufTSS2lvb6e9vR2/3z8mGWkyDAYDy5cv5/HHH8ftdvP973+fp556ikgk\ngtVq5cknn8RkMuF2u/mXf/kX+vv7JySmEaeJCEz2+/0jUneE7q/X6+np6UnZwJKcqGm1Wnn44Yfx\n+/1kZWWRn5+Px+PB4XDw3nvv0draSlNT04jTZaJ2tVotlZWVVFZWUlFRQWNjI/X19fT19Y1IukxV\n1VNVFYfDwdKlSwmHw1RUVKDX6wmHw2i1Wq699lqWLVtGb28vb775ZlrWYaPRSDgc5uDBg9x4442E\nQiG+973vcdFFF2GxWGhqaqKnpwdI3cDU0tLCT3/6U7xerxSil19+md/85jfs3bt3xHt5PB6pUk4G\n5yRoiqK0AF4gDsRUVV2uKIoTeBEoB1qA21RVdaXbtkajIRQK8frrr5NIJGhsbOTYsWOoqsrBgwcp\nLi7m85//PNu2bSMSidDU1JTSAjYajRQUFBAIBPjnf/5nnn/+ecljUVxcTFFREQ6Hg+7ubtasWcO2\nbdtSoloTapjZbMZkMhGLxQiFQqiqis1mY+nSpfj9fo4cOZLWTh6Px/H7/fLeZDAY0Ov1kt9RcOSL\nE10I90QbjtFoJCcnh6997WuUlpbi9XrZv38/Ho9nRAGQ5KDliRawqqoMDQ2RlZWFqqrcdtttHD16\nlLq6Ou69914+//nPY7FYqKiokFTrqSIUCvHmm2+i0+mk8N9www2YzWai0SgvvfQSHR0d8vOpCNvg\n4KCMcy0qKuLTn/40drtdEtIKF4qgIj+XzIPzcaKtVVU1mQnzW8AOVVV/pJwpEv8t4OF0GhQnWiAQ\nkMUauru7ZRCwTqejvLycu+++myuvvJK2tjaam5tTatdmsxEKhdi+fTsvvviitFYVFxdz//3384c/\n/IHh4WHmz5+Pw+FIS10QJ0VGRgaFhYUcPnwYrVbLo48+SllZGU8//TSHDx+WfRHfGQ+xWIxt27ax\ndOlSNm7cSDAYxO/343Q6icfjDAwM0N/fL62xgpPjbIaWZLU8OzubK6+8kpKSEpnbJYQXIC8vD61W\nK8c1+XQer8+C5Vir1Uouy+LiYtatW0dmZiaKojBr1iwMBkNalsJQKMTp06dlpRu73S59gGL+BY25\ncKOkovYbjUYMBgMPPvgg69at4+jRo6xbtw6dTie1j+HhYZnhMVlf4oVQHW8C1nz492eBd0hD0IS5\nXFjAxD0peTfRaDTU19dz4sQJHA6H3EFTwdDQEAcPHuTEiROSCbioqIiNGzfyn//5nzz11FMUFhZi\nNpt599136evrS7XrwJldUlVV9Ho9l19+OTfffDM333wzBw8elBTWqVo0VfUMY/OPf/xjsrKyRgiC\nWFCiEEhubi5ms5mWlpZxCzwIxuRbb72V0tJSfvGLX3DixAlp3k9us7S0lEQiQWdnpzRrTzTOXq+X\nFStWMH/+fOx2O83NzbjdbpxOJyUlJbIcVLqLNTs7m5KSEoqLi/m3f/s3Vq5ciUajoaamhocffhiX\ny5XS1SEZF110EZdddhlLlixhyZIl+Hw+6urqOHHihDS6VVVVsXnzZl555RWamprS6nMyzlXQVODN\nD9NcnlDPVPHMV1W1+8P/7wHyx/z2WSAiPSwWywi2pOS7mxDGxsZGEomE1M0ngphgn89HLBbD6XRS\nVVXFQw89RH9/P1u3bpULQtCQp0NtoKqqJBvt7u6murqajIwMmpqaePzxxzlw4MCkojl8Pp+sUuP1\nevF6vcRiMcxmM9nZ2axYsYJ4PE5vby82m21MVVcwGxcUFEg3w8mTJ3G73SMMHiIaxmg0Spo1oU2k\ngvr6epqbm6VgR6NRXn/9dW655RZKS0tTdm0kI5FI0NHRQXZ2NpWVlajqGUazLVu2UFdX95FImVQM\nYnPnzuXGG29Eq9Wyc+dOmpqaOHjwIM3NzeTm5jJ//nwKCwspLS2V5LKTxbkK2mWqqnYqipIHbFMU\npS75P1VVVcfKNVPGqGGtqioZGRmymkdzc7OM0BAXeEE1V1NTQ39/Px0dHSktYHHnECrDZZddxt/+\n7d+yaNEiHn/8cbKyssjOzsbpdNLa2pqWMzj5GWKxGo1G3G43v/nNb3jvvffGdfqOBVU9Q0oTi8W4\n9tpr6ezs5MiRI3i9XsrKyqiurqaqqoqenh5OnDgxrvM2OXpDo9EwPDw8IrwoeRMzGAzSwJQcBJDK\naSQ2x2QVTlBuu1yuSQmaMEaISjoej4c//vGPPPPMM/T09KQ9T4qi8OlPf1rSLjQ3N9PQ0MDg4CAm\nk4mFCxdK6ojW1taUqQfHwjkJmqqqnR/+7FMU5RXgYqBXUZRCVVW7FUUpBM6qe6lj1LBWlDP89Var\nlauvvpqqqipZVSUej1NfX88lvL1lAAAgAElEQVQvf/lLhoaG2LVrl1RnUh0AoYYK6u4XX3yRp59+\nms2bN0sS0oMHD6LVamVxw3QhTPBLly6lrq6O5557Lm21JhmBQID6+nrpg4pEIjidTjIyMnA4HOzf\nv58TJ07Q0dExLh2DUFsDgYCMfigqKpJ3EYvFQnZ2NoWFhVgsFsnZIto8G03BWBDzIZ6zYMECtFot\nR48epba2Nu2xCAQCMkzszjvvpKOjg+Hh4UkvflVVOXbsGKtWrSIvL0+a8wOBgBRqv99PQ0MDTzzx\nhHzWZDFpQVMUJQPQqKrq/fDvVwHfBzYD9wI/+vDnq2m2SyAQoLa2FqvVKquIaLVa2tvbpQEgmUMj\nHYgFE4vFOHjwIIcOHfqIZU0IezoLK7n/4t7ncDikSnOuQanCxCwMGuFwGI/HQ39/P8FgcETV0vEQ\nj8fxeDzU1tZSUlLCRRddRH5+PsFgEKfTSW5uLk6nk927d0vVWfQ/nXcQ2ofNZiMzM5NbbrlFFsAQ\nY5xOe0IbCQQCuFyulJm/xoKqniGzXbp0KevWrSMnJ0f6Oi0WCx6Ph1dffZW33norrZjXsTBpKgNF\nUSqBVz78pw54XlXVRxRFyQZeAkqBVs6Y98elFBqtXgoKaq1WS3Z2Nrm5uQwPDzM4OCgFbKrCbrcz\nb948rr32WtasWUNNTQ3f/e53UyZ4TQcGg4H8/HzMZjN9fX0MDw+P275QuwFZYkkQmgp1T6fTEQqF\npKo0mV1cFCJcuXIl3/72t3E4HGg0GhoaGnj55ZfZuHGjdLCni9E+vfMxnqISrN1up6mpSVKXp/Lu\n6oWmMlBVtQm46Cy/HwTWT7ZdQBbtU9UzVNeiJvNU5/VQlDP89TNmzKCwsJCjR49y7Nixs5K2no9n\nieBgcW9J9e6UbMUdLZznI9crFovh8Xioqalh06ZN2O12enp6OHDgAH19fQQCgXNqf3RUy7kikUjQ\n0NBwXtoaC1OWnCd5ECejwv0lINTGrKwsnE4ngGRSvhD9F8IGfxaiqQZheYQ/C0i6auhURqon2pQV\ntGlM45OAVAVtmpxnGtP4GDAtaNOYxseAaUGbxjQ+Bky5NJlpTGM8JIfhXSgrtE6nk4HLIrfwXJ/z\niRY04QMSIT7nAmEdKysro7KyUsYo9vb24vf7CYVCKXOIaLVaDAYDBQUF5OXlcdddd1FVVUVnZyff\n/va3GRoamlR/tVqtTHa87777aG1tZfv27fy///f/RuS/pfquwldpMBhkjfBoNCojZFJNfh3dttls\nxmq1YjabsdvtsoBgsmCk6rBODgszm82SKkI460XEvnBZpGrRHP18EdZ36NAhmbkgKsl+/etfp6+v\n75wsu1Na0MQAG43GEYXtRO7Yf/7nf+Lz+Xj88cfZsmVL2jtcMoWd0WiUbEgiJ+mhhx4iFovJVJ1U\nIPg9Fi5cSFZWFoFAgDvuuAOTycTw8DA//elPZdpFOn3VarXcd999/N3f/R0zZ86UES7Dw8OyJlly\nexMtCCGUorrlihUr6Ovro7u7W/q6ID1/mqCTyM/Px2AwYLPZyM7OJhQKydwv+HPBCyEUqcapin7P\nmjWLpqYmBgYGpOM9Ho+nJQij3ysvL4+HHnqI4uJiVPVMed3XXnuNY8eOSR/luZxqU1bQRAjP3Xff\njdvt5tixYwQCASKRCEuXLuX73/8+S5cuJZFIUFpaynvvvSepDVKBcC6LdJOCggIuvfRSIpEIfX19\nuFwuWXsrlVK4Atdccw0PPPAATqeTZ599loGBAQYGBsjIyKC5uZmenh7C4XDaafzFxcX80z/9E7m5\nueh0OtxuN5s3b+YPf/gDbrdb5sLBxEI2eievqqriyiuvpLa2Fq/XS3d3d9qLSvj0cnJy0Ol0GI1G\nyZEYiUTkCW4wGNBoNHi9XiKRiCyEONbzknPoRKRKY2OjDJ4W1BMmkymlBN2x8LWvfY17770XVVVp\nbGzkwQcfZN++fRgMhvMSgjUlBU1RFBwOBzfddBOrVq3irbfeore3V8Yfrl27ltmzZ6MoCsFgkEcf\nfVRGjqQKnU7HpZdeSjAYpLGxkVOnTnHq1Cl++9vfYrFYcDgcaQuZwWDgm9/8JkVFRbz00kv8+Mc/\nRqPRsHfvXvR6PW1tbbhcLvmOqUycTqfj//yf/4PNZuN//+//jdvtpri4mK6uLt5///2PsCinWx7p\nO9/5Dvfccw8ZGRl897vfBc5U6QTkmKcCkUxqMBhk3l1PTw9f//rXWbFihcy0EEUQhbqfHAU0FsRp\nIk6t5uZm/H6/ZKZatWoVJ0+enFTxQLHh3nfffZhMJm644QbefvvtEYmuQjU9F0xJq6Pg2AiHwzz3\n3HP86U9/wuPxEAgECAQCHD16VPIabtq0SRLJpDoYItdq6dKlWCwWOWmxWIxYLDaioHo6EJHqjY2N\nvPLKKzKR0ufz0dTUNELIUslt0mg0lJaWUlxczIEDB/iv//ov9u/fT01NDWvXriUjI+Mjn09XHf3q\nV79KdnY2er0eu91Ofn4+c+fOZc6cOVgslpTbEkHP3d3dMifP4/HQ2toqyUc9Hg89PT00NjZKLpaJ\n4imTo0mEOioE02g0ctVVV/HII4/gdDonfQrn5+fLYPaampoRAeaCxuBcw72m5Immfsg9sXXrVpmk\nKQbRYDDws5/9jMzMTL7whS+wefPmtIOMDQYDV199Nddffz19fX2S+FOr1fKVr3yFL37xi2RkZLBq\n1aq0Ji8ajfLVr36V3t5eOjo6ZIZ0V1eXzM+yWq1oNJqU8psMBgMrVqzg6aef5uDBg8TjcSoqKnjm\nmWcoKSnB5/Pxox/9SAq0yEpPBYqisGzZMkk8e/r0aerq6iTbVGdnJ4ODg5KoZyKIpNfRz7j99tvJ\nycnh8OHDbN26lba2trROXJHwm5eXx8KFC6msrGRgYICKigr+x//4H+Tm5qZNMyj6ZjQacTqdzJw5\nkwMHDvDBBx8wb948qqurmT17NjNnzpQqen19/V8mTeZCQlyQxSVUGEVyc3Nlsp6qqpw4cWLEy6cS\nECvacjqdWK1WFi9eTDweJxgMMmvWLP7u7/5OWrUmams0EokEJ06cGJHtK4RJGHXKy8tlLtREbYu7\nzMDAAIlEgsrKSv793/+dWbNmSUIZm80ms3/T2XU1Gg3V1dXyJNqzZw/19fVUV1cTCoVYsmQJOTk5\n7N+/f9JchoqiUFVVRUFBAbt372ZwcHDS9QLsdjuzZs2iuLiYyy67jKqqKqxWq1QrbTZb2mqzYLWK\nRCI88cQT+P1+Fi1axLJly6isrKS8vBxFUWhtbaW5uTntZNVkTElBgz8naIokyttuu43Vq1ezZMkS\nuUCTL7/p5jipH/J6LFmyhGXLlsmdW6gmPp8v7ShzYa1KnmyR0SzUnqVLl9LS0pLSghBEnpFIBIvF\nwoMPPsinPvUp9Ho9oVCI/Px8qqurJQOY4H1MFUajkWAwyL59+3jqqafo6elBr9czZ84cCgsLcblc\nWK1WhoeHU25z9HgUFBRgNBon7dIQanZ+fr7cdAUtemNjI4sXLyYvLw+bzSZdFKkQ0wr3haIotLe3\nS06UwsJCWltbMRgMLFy4EJ1Oxxe/+EW2bds26URgmOKCJtStWCxGfX09brebzs5O8vLyaGxsxOVy\nYTAYJBWY4KcYb+cRWbTPP/88u3fvllTiXq+XpUuXsmzZMoaGhvjlL385aV+X2WwmNzeXp59+mlAo\nxL333itP5xkzZoy4B4yHcDhMR0cHBoMBu91OYWEh/f390sf3/PPPY7PZWLVqFX19fRw9ejTlu2oi\nkWDr1q2YzWbef/99mpubsVgsuFwuXnjhBcLhMDNmzMBms0mrW7oQAma1WikpKcHpdKbM7wJ/vkMZ\nDAZJdhqJRCT5qk6nY/HixXz5y1/GbrdTUFBAV1fXhAJhMBhQVVXy7AshSyQSkl48kUiwdu1annnm\nGSoqKrDZbJJ4aTKY0oKWbG2qqamhsLBQMv0+99xzBINBeTcBUl5k8XicUChEc3OzVDdycnLQ6/V0\ndHSwd+9eXn755Un1W1S+ufPOO6mqqsLlcklrmXiP9vb2tMYhEokwNDTEww8/zNq1a7n55pvZsmUL\n9fX1mEwmCgoKpLM5HT/SwMAAjY2NBINBjEYjkUhEnl6nT58mLy9vUmMAZzacqqoqGhsbsdvtzJ07\nl/nz50vHtcB4WohwfotyXGITTTaQ6PV6SQMXj8flWhgLwp0DSP+jIIESFBdCVR4YGJCW7XMtETVl\nBQ3+zIil1+v55je/yfr16ykrK+Pee+9lx44dcvHGYjHpn0mFmFOomUajURpC7r33Xqqrq/nKV77C\nqVOnJp39q9fr6e/vZ8OGDbzzzjuYTCaysrLo7+/H5/OxefPmtC/uYrMRG0NpaSk5OTlypwU4cuRI\n2kahUCjErl27yM3NRVEU6VTOzs7m7rvvpre3dwRD1kQQ98Q5c+Zwww03sGzZMn7yk5+wYMECvvKV\nr1BSUkJGRoY0mqSi5opaeHq9Xqp7oj9f+MIX+I//+A8SiQSbN2+W/JbjQaiNwvglXEY6nU5u7GIe\nX3jhBWw2G48++ij9/f0pjcFYmLKCJl5WlMy5+eabcTqdRKNR3n///RGCIBZiKgmiQsh0Oh2lpaXY\nbDaqq6uZM2cOu3fvpr6+/pwu/7FYjEgkgs/nw2AwSGKhROJMhc5z2Rn1ej0zZsxgzZo1ZGVlsXDh\nQk6dOsULL7yQNv+kQCgUwu12y7E2GAzcdNNNkkwnnXuJRqPBbDZz+eWXM3v2bOrr62ltbWXt2rW0\ntrbKemapQqj5QusQgiz+PPTQQ1gsFlkdJ9U7dTJ/ZSgUQq/Xyyqv9fX16PV61qxZQ0FBAfF4nJde\neumc6TOmpKAlh+oYjUbKyspkevz27dvPGgEwmr56rDaTfSMlJSXMmTOHxYsX88orr/DWW2+dm2VJ\np6OwsFAWtLvkkksYHByUHBSpkOeMB5PJxC233MKcOXMkG1Z9fT0NDQ2T7rcIMTMYDFitVubNm8dX\nv/pVbDabNLKkCqG++nw+3n77bRobG/H7/bKeW21t7YjPT2QdFmrzaEOX2Cjz8vJkUYqhoaGU3RBw\n5v5bUFCAzWaTd72lS5fKmm4Oh4OBgQHq6uo+ou5OBlMyw1oIg9FoZOXKlcycOZOGhgb27ds35q4l\neOfHEzStVoter8fhcDBjxgy+8Y1vEA6HOXLkCE8++eSkTzI4o+KUlZWxfft2cnNzMRgMRKNRjhw5\nwrp169JWF8+GZcuWsWHDBubPn4/L5eK73/2uJLo5V2g0GpYtW8ajjz7KvHnzOHHiBN/4xjc4duxY\nWu2IcRZtGo1G7HY72dnZtLW1Sb/o+ejvkiVLMBqN9Pf3U19fn1Yf4cyaEVeHm2++mcrKSnp6emhr\na+ODDz6QrGsTRK1cWHKeCwkxELFYjNOnT+Pz+cZVDcRFeKIIAxEPqKqqFAJVVXn33XfPScjgjDrS\n1tbGa6+9xuWXX05paankoDyXUzIZnZ2dPPPMM9x+++0888wzvPTSS+etkL2qnmFw3rVrF1qtllde\neYXu7u6Jv3iWdoQgiXkRRhZhdDgfSCQSHD16FLPZnPZpI9aQsGB6PB6efPJJqaImszafL0zJE+3D\n36HRaHA4HGRmZtLW1nZedkKhdlitVgoKCmRZ2fNx4gAy7SQjI0NWejlfY5ycLpJKIcN0IRz5c+fO\npaamJu071VhIVv3O53oTFsTJ0uKdD0yT80xjGh8Dpsl5pjGNKYRpQZvGND4GTEljyDT+OiDu2cLp\nLMLqpiLR64XGtKBN47xDGD80Gg16vZ6MjAwuuugidDodHo+HI0eOyHCx/y5CN6GgKYryFHAD0Keq\n6oIPf3fWOtXKGbv8z4DrgADwJVVVD12Yrp+1r0BqRehECofBYCCRSGA0GmlubpbJmZN9/uhnazQa\nFi9ezKxZs7BarWzcuDEtIp3R7et0OlmA0OPx4Pf7R0SbXCjjVrqZEYC0EotYTVVV8fv9MqwuGo2e\nUzkrEXljt9sxGAwMDw+PKM4xnpVajKWgXViyZAkmk4mZM2dKn6zL5aK2tpba2lqi0eg5FSlJ5UR7\nBngceC7pd2PVqb4WqPrwzyXAhg9/XhCI4NDRUQPjBReLGMfly5fzm9/8Brvdjt1uR1EUXC4Xq1ev\nprW1NS1Xwug6AeJPXl4en//853nkkUdkZoHL5eKDDz6YFB+/iGa54oorKCsrY/fu3dTW1tLV1SUj\n0C8EhBM6nTFJTtS12+10dXXJNB6j0SjdHpPJXBbheStXrmTevHmsWLGCgYEB3nrrLWpra+nv758w\n6kS8k81mY+bMmdx5552SwkLUnTObzezatYuHH374nH2hEwqaqqrvKopSPurXY9Wpvgl4Tj3zlnsV\nRclUPixKmGqHRqfjC1+J3W7H4XDICY9Go1x22WXk5OTgdrvZtm0bPp9PTuBYAy0KzV9xxRX09fXx\nwQcf8Lvf/Y7W1lYKCwuls/nkyZMpp3SMfpainClKv3nzZubMmYOqqrS0tHDs2DG6uroknVu6SYoH\nDhygsrISgF/96leSO+Nc0+y1Wi0OhwOn0ylrzwmWLaPRiM1mk/XY0mGa0mq1VFRUEI/HOXXq1Ajh\nEyWkJnOaZWZm4nQ6ueuuuygrKyMvL4+2tjb27dsnneTjjYnoRzweJxwOMzAwwGOPPSaDqEUO5P33\n309ubu6EGQGpYLJ3tLHqVBcDyTkgHR/+LiVBS3ZsioESDtqFCxcye/ZstFqtTNJctGgRM2bMoLu7\nmy1bthCJRCY83mOxGO3t7Tz99NNs2LBBZi+LBECj0Uh2djbLly/nT3/606RUBRGj53a7CQaDbNmy\nhQ0bNtDe3i6fl87pI9TPqqoqdDodgUCAZ599VpLR2Gw2WX8tXej1ei6++GIeeughXn75ZXbu3CnV\nuqysLObOncvg4KCsTZcud6TJZKKlpWXEOAqn/mRUMXESic0rGo3S39/Pe++9R11dHYODgylxUQrD\njM/nkyRByf3xer1s27aNuXPnTqrg5WicszFEVceuUz0elDFqWH/4fzJSOzs7m7y8PNatWycLobe2\ntqLX62WkfDgcHlEBdKLdLBgM0t3dPSJqQwQa63Q6iouL0ev1bN26dVLRKCLUy2w24/f7efrpp6UB\nQOy26Uyc0+nkwQcfRKvVSg6SaDSK0+lk4cKFNDQ0yMDidBfEAw88wDe/+U0sFgs7duyQ0fBVVVWs\nXbuWhQsXsnfvXnbu3InNZkupQJ8QBtHWaBiNRnJycmRaTrp9FvGJXV1d2O12Tp48yRtvvEFPT09a\nYyA22OSqpsnvEIvFOHny5HlRyScraGPVqe4ESpI+N+PD330E6llqWCffb0RAalVVFTNmzGDTpk10\nd3fLS7U42YxGIx0dHSOKnk800IlEgkgkIoVhzpw5XHfddbhcLg4cOEAwGMTj8Uw65MtisfDAAw9Q\nXV0tN4LRKpcg/ZwIiqJw//33s2TJErngd+/ezR133MGtt95KdnY2P/7xj3G73SMo91JZbOXl5Tz6\n6KPE43F+97vf8etf/5pEIkFWVha//OUvmTlzJu+//z5Hjx6lt7dXnhZjQRSZt9lsRKNR8vPzicVi\nOBwOSaut1+uZPXu27KdINE2lv4pyhhru4osvRq/XA7Bjxw6OHDnC0NDQpGIek8PaYrEYdrtdbrou\nlwu9Xj9iXX7cGdZj1aneDHxDUZTfc8YIMpzO/UzsMCJNHf5sWWpsbBzBGKwoCh6PB5/Px8DAwKQG\nQKfTMXfuXO655x6ysrJ47bXXcLlc+Hy+SUfEazQa5syZw/r162XwcnV1NSdPnpSCICYtFSiKwqlT\np9i5cyc///nPZcH4q666CpvNhl6vp729nUQiIbONUxkLnU7HnXfeiaqqdHZ28rOf/YxYLIbJZKKq\nqory8nJisRjbtm2joaFhQiEDsFqtOJ1OyfI1ODgo7zd6vR6tVktmZiZWq1VqJKnkECa3f8kll7Bm\nzRpisRh79uyht7d3xCabDoTlsby8nDvvvJPW1la8Xi9DQ0Po9Xq6u7uxWCwEAgFisdiF5QxRFOUF\nzhg+chRF6QC+xxkBe0lRlPv4sE71hx9/nTOm/QbOmPe/nG6Hkk3DOp0Oh8Mxojg4/LkWs9vtxuv1\nnlOwsaIoRCIRDh8+LIU5IyNjUmSccGZj0Ov1DAwMcOzYMQYGBjh69CjZ2dlYLBZJjTYwMJBym83N\nzfzyl7+krq5OnuYi2l6YoEOhEBaLRZq1J1p4RqOR0tJShoeHefLJJ+ns7MRgMLBgwQK+8IUv4PV6\n8Xg87Ny5UxaiHw+KolBaWkpFRQUtLS24XC7C4TBWqxWr1Uo8HqeoqIisrCwcDgfAiNNiov4aDAbW\nrVvHV7/6VcrLy/F6vTQ2NtLY2IjVap2UsCmKgtVq5dprr+Wqq66iubmZbdu24fV68Xq9XHTRRZhM\nJoLBIPX19edkdJqSQcVCdTQYDCxfvpzMzExqamrkSSdIVfr7+3G73dIIMonnYjQaZS1ogLvvvptl\ny5bxzDPPsG/fvrTbNBgMcqcU/hyhpubm5vLWW2/R3t7ONddck9LCEGn3IqVDcEP+3//7f6mpqWH7\n9u20t7fL0623t3fEpjQWjEYjRUVF6HQ6eVeqqqpi/vz5ZGZmsnXrVgYHB3G5XBOekmIcH3/8cUpL\nS9m4cSPvvfce0WiU1atXk5uby/79+1m7di1msxm9Xs+BAwc4efIkx44dS4nr5fLLL+fBBx8kJyeH\nlpYWXnzxRXp7e7n++uu5/vrrufnmm+nt7U1L2HQ6HU6nk/z8fIaGhiSRrrhSfOpTn6KyspL29nbe\neustachKxic6H02Y56PRKO3t7QwNDTFr1izsdjsLFy7kzTffZGBgQBovzsXHIe5O4lQsKipi/fr1\nZGdnc9ttt03w7Y8i+Y6UXMxBMG0JqvFUoSgK8+bNk+OxbNky1q1bx8KFC9m1axd+v5/c3FwyMzPT\n4k2Mx+O43W6MRqMkwSktLUWv17Nr1y5J+pqKKircGXl5eWRnZ7Nw4UL5znPnzgXOjKter6eiokJa\nMLu7u9NyFfzud7/D6/Wyb98+IpEIc+fO5corr6S8vJz8/Hx6e3tTaiu53+L0Eoxn4sqiqmc4+LOy\nslLO3h4PU1LQAHkatLW1AdDR0UF1dTVut5sDBw5IZ+Nkw3hEBjcwgl+/o6MDs9nM/PnzU27LYDDI\nNpNDi8xms9wENBoNhYWFtLW18atf/SrliVOUM2y/N998M1lZWXi9Xlm15f7772fBggW88MILBAIB\nmpub0/bN3XTTTWRkZFBUVMSsWbMk/cCRI0dSvu+J+/KPfvQjysvL+cxnPsPnPvc5FEVh27ZtKIrC\nl7/8ZWbOnEk8HudHP/oR77zzjizOMRF0Oh1tbW0cOHBgRPLvww8/zMKFC4lEIlLjSaWvMJINS8xZ\ncuSNRqOhq6uLPXv2MDg4eM4JtlNW0ATEAEQiEVpaWgiFQpIbROyak4HRaJQ+uOQJEszAqabGK8qZ\nghzZ2dl4vV6pvgj9X9ypcnJy+NKXvsSmTZvYtm1byv2Mx+Ns3rwZi8VCaWkpjY2NFBcXs3btWioq\nKqSTNZ3TQcBkMrFq1SpJTmq329FoNOzZsyctTkuhFRw+fJi6ujpptMjLyyMnJ0dS8Gm1Wjo7O3n1\n1VcZHh5OWXUWBEfJpnudTse6devQ6XS8/vrrafslBamt0GaEO6mgoACr1YpWq6Wjo0O6DM41gXfK\nCxr8OT1eZEKf6zGuKAq5ubmsX79eOjqFBWzu3LmEQiH27t2bcntLly5lwYIFNDQ0sH37dhKJBCaT\nifvvv59gMIhOp5OWzGeffZbBwcGU21ZVlX379tHW1kZRURFms5l169ZxxRVXYDKZyMvLw+VyTcoi\nJkz5sVgMrVZLIpFgy5Yt7NixI+22hH8yHA7zxz/+kQ8++ACHw8E111xDRUUFkUiE1tZWXnnllbRM\n8Xq9HqvVSmVlpbQym0wm7rjjDkkk+9BDD6XcTxG+5XQ6ycvLIxwOS/Kd0tJSbrzxRgYHB6mpqZF3\n3fFIn1LFlBe0ZKuU2FX0er28E2i1WmkQSSfodWhoiAceeIAf/OAHxONxyV9/9OhRvva1r3Hy5MmU\n++h2u7nuuuu46KKLRlSk6e7upqWlhR/84AfU19d/hC48VQQCAZqamujp6aG8vJxoNEogEGBoaIi3\n3357Uj6kWCxGZ2cn//RP/0RZWRler5cPPvgg7dpto5FIJGQkCcCuXbvIyMhAp9MRDAbTHgMRrvYP\n//APlJSUoNfrKSoqIhgMMnfuXDo6OtLqnzAuOZ1OHn30UbKysqQaGYlE+Na3vsWxY8dkBRyBv9o7\nmoAQNHFJ1Wg0OJ1OysvLycjIIBQKyQKF6SAYDBIIBCTdmNPpxOv18tBDD9HS0pKWKnL69Gkef/xx\n/vEf/5GKigp5D/j973/Pli1bzkt0gQjrCgQC9Pf3U1dXx/vvv8+rr7466UWQSCRwuVxkZmbS29t7\nXrSF0YhGowwPD4/ISUsHYlPcu3cvDocDu91OS0sLGzZsSFvIBHw+Hx0dHbz55puUlpZSWFiI3+/n\n2LFjvP/++2mFmqWKKWveFz+NRiN6vV46Om02G6WlpWRlZdHU1MSxY8cYHh6WgjYV3udCQ5ifhVVw\nsotC1IETRhy3233BMgD+WvGJJ+dJFjZA5jBZLBYyMzOx2Wz4/X46OjpkiNNUeJdPEkRMIvw5yHZ6\nDNPDJ17QzvIZaRkSOvXoiOtpTOPjxl+doE1jGlMRqQraNAvWNKbxMeC/vaCNvgtO4783LtQ6mPLm\n/fMN4SowGAysXr2a7Oxsuru7aW5uZmBgAK/Xe0HufIKi4Xy3Lejcku+qU+E6AEhKAFFMwmQyyYwL\nSL1wpKIomEwm6bwWpZYEjUMsFpMVVdPtX3KicHL2tjAOnY2PZjL4xAiaSM7Ly8ujt7d3RJJjOtBq\ntdjtdoqLi6mqqiISiQwPtTcAACAASURBVFBQUCAnLDnn7XxA+P+A82o6N5lMOBwOmXYyPDws/UqC\nXeovARFuNnv2bHJzc/nHf/xHSktLpd+ysbGRZ599lo6ODurr6yfMNBB+VL1eL7PtnU6njC/1er20\ntbXR2tqaFp9JsnAlJxuLDTFZyEZnXk8q9zHtb3zMEPwSy5cvl1Hhf/jDHz5CSiNy1EQEyVgQgxmP\nxzlw4ADd3d0yqVFM6PlilDIajcyaNYtoNEpTU9M5CbCiKJSUlLB+/XrWrFnD/PnzGRgYwOPxsGTJ\nEiwWC21tbdTW1rJp06Yx4//EghILaHSfhI9u/fr11NfXjyikLk7Nsd5DLMJgMEhLSwsZGRns37+f\nzZs3U1dXh9PppLq6mm984xts3LgRt9tNa2vrhO8uFr6opR2Px6msrOSee+5Br9fjcrl4+OGH02IW\nSz6lxHuL4iRWqxW/3084HJZrKR6Po9PpJL9IunM55QVN7DZut5tTp06RlZWFTqcjIyODQCAgVcHF\nixejqiqnT5/G5XKNORBCXRELc2hoSOZ5iaTN8+VTmj17Nvfddx9bt279CIWdmOBUn6HRaFi9ejW3\n3norlZWVnD59mt/97nfU1tZy4403cuutt1JcXEx7e/uYp7IQsrPRKCiKQllZGf/zf/5PrrvuOrKy\nshgYGOD73/8+HR0ddHV10dbWNu4GJJ7p9/sJBAK4XC6OHz9OOBzG5XJJKoINGzZQXV3Nvn37UiLR\nESqbiNjQ6/V0dnbS09NDVlaWDBA+F1itVux2OzfddBOZmZk0Nzezf/9+mYYlUonSCc1LxpQXNFE8\n0Ov1kpmZKUu3NjQ00NjYSGZmJuvWreOuu+5i+/bteL3ecUlQtVotGRkZ6PV6hoaGpG4vJtRms+Hz\n+eQOPhkIHor77ruPz372s7zwwgvnlDMnJnnlypVkZGTgdrv5yU9+woEDBwiHw3R3dxOPx/mbv/kb\nBgYGOH369LiCZjAYJHGp+HdZWRnvvfeejOAXgdHXXHMNjY2NvP7663R2dk44JiKjQlEUqRYm321E\nvGNmZiYlJSXU1NSkNAbiRInFYjK29dixY6xYsULmwbW0tKSl2olNXKRczZo1i8997nNkZmaya9cu\ndu/eLTlPRHHJ06dPp9T2aExpQRNqXjAYlMxJS5cu5bXXXqOurk7er6666ir6+/vZunXrhCpaZmYm\n+fn5kjRHfNZsNjN37lzuvPNO6urq+NOf/jSpgNXCwkLKyspwu900Nzdz+PBhampqPqLSWK1WmXg4\n0cIQ0RsbNmyQ1A7JO6vH46G+vp633nqL//iP/xiTQFTwN1qtVvr6+tBqtXz2s5/lW9/6FhUVFaiq\nisvlwuv1snfvXjo6OsjMzGT27Nl4vd6UhQKQ2fC//e1vOXHiBD/84Q9JJBLodDqeffZZsrKyUjrR\nkomaDAYDqqqSnZ3NNddcwz//8z9jMpkk+7HJZJIZ0iIjfaJ29Xo9drud+fPn43Q6MZlM7Nu3j3/9\n13+ls/MMr5TT6SQ7O5uysrK/TmOIoijyXhAMBjlw4ABHjx6lpaVlRJ6ay+Xi1KlTdHR0pLTjAvT0\n9IyYZKvVyrJly7BarbIcbDq7o0ajwWKxSFbe3t5eNm/eLPkLRyMnJ0dmXU80BqqqypNreHgYt9s9\n4jNWq5Wqqip27979kfdKhqC/FoYks9nMbbfdRk5ODsFgkKeffppDhw7R1dVFOBwmPz+fu+++W8aS\npns3sdvtkk34Zz/7mZzLEydOAH9mwJro/TUaDZmZmWg0GsLhMFVVVf+fvTMPj7q69//rO/uSZbJO\nMtkXEhIIAmGJKKJCUcG6tJS6PNYuT722em+9Xu8t3vb3tLa2vbdXe2/1eu2i1qJ1wSoqigUU2QRZ\nJBASCNn3yb5MZpJJZvv9Ec/pJEIyk1AbW97PwwMkM2fOnO/5nPM5n/P5vN8sX76cqKgoAHp7e2lp\naZGuaWJiIu3t7VOWIwV7MWIhFzQJweS5Qkd7cHBw2plIs9bQgieu8PGdTifAuF0oMTGR119/naqq\nqpBKPBwOB2fPnh2XqS7C0P39/WzZsoWGhgba29vHURFMBuHaRUdH09LSIs9Iok4sPj5eUgPA2IRf\nsGABtbW1UxqzOC/CmMC5OJOKdDRxPt2zZ488D52vPa/XK0mB4uPjWb16NcXFxXR0dPDkk0/yzDPP\noNPpZGQvLS0NvV5PREQEtbW1Ya3mYtLX19fT0dGBzWajp6eHkZGRsJKXhSj88uXLaWlpwW6309LS\nwoEDB7BYLJSVlfHqq6/S29tLYmIiGzZsoKSkhKeffppt27ZNOq4igAZQVFREbGwsW7Zs4ejRo/K7\nijlQWVkp2camg1ltaLGxsaxZswaXy8WRI0dk1Em4CYmJifIsIAofpxqIc5FlwtgZ4OTJk3R3dzMy\nMhJWeFz4+qKMRbSdl5fHbbfdxunTp+no6JBnosjISBISEqitrQ25fY1GQ3Z2Nnl5eURGRlJaWkpv\nby86nY6mpiapET2Z0QpmMY1Gw9y5c1m5ciUA1dXV1NbWYjAYiIuLo7CwkLi4OJKSklCpVFRWVoZ9\nXSAWkOrqao4dOyZLmcKl1xZFmhEREZLly2638+6771JaWkpjYyN9fX2oVCpSU1NZvnw5WVlZGI3G\nKfsn9LX7+vo4efKkLCQVLqUIWOl0OoaHh6d1Vycwaw1NhLP/8R//URJy9vT0SN719vZ2XnrpJc6c\nOSN3BpHhP9lqGbxSTbyM7O/vZ2BgYJyxhuI+iusCYWTC8G644QZyc3PH6QmIcxwgzxNT3SOJc8T/\n+3//jwULFqDVajl48CBvvPEGbW1tVFVVMTQ0FNrAMnbtIMqOdu/eTXl5OQ6HQxLrCJq1JUuWoNFo\ncLvd0n0K9YJZq9WSkpLC3r17qa2tlVFH8WxCbSsyMpK0tDQWLlzIyMgI5eXluFwuPB4PTqeT3t5e\nPB4PJpOJuXPnYrPZ8Pv9U7ql4vOF+37w4EEMBgOAXMgF25rBYJAUGtNNPJi1hpaYmMhXvvIVLBYL\nra2tPP300yxbtozVq1dLamqtVit9ccEAFSoPRXR0tKRoE2ccwbWv0+nkBAuFwjtYVCH4dT6fD4/H\nw/Hjx+UE02g0tLS0sGXLlikLDEUwKC8vj6uuuoorrriCiIgIVCoVFRUVlJeX4/F40Ol0eDyeKekM\nxCJgNpsZHh5m8+bNlJaWMjw8jFar5ec//znZ2dk0Njby9ttvc/jwYRwOB3a7fVJOEvHdjUYjsbGx\nLFiwgOzsbBISEnjsscdwu92MjIxgNpuJjIwcVxU/FSIjI7n11ltZsmSJZDjesWMHBoOBdevWUVpa\nSnNzM7m5uaSnp9Pc3Mzzzz/P8ePnVwsTi7IYe5/PJ5mplyxZIoMgl156KTExMZw4cYIzZ85Ij2Q6\n0ehZa2her5euri4eeeQRXnrpJfr7+9m6dSvr1q3jjjvu4LnnnmPv3r0AUuAhFP9ZGIJarebKK68k\nJSWFzMxMdu7cSSAQICIigsTERKxWK2VlZZLTfzIjFitj8Eonzpji32IyBhO9THX5K3YGo9FIV1eX\nJGKNiopix44dDAwMYDAYsFqt2O12Sbs9FbRaLY2NjbjdbsmqlZiYSG5uLqOjo1RUVLB3714Z/Bgd\nHcXtdp+3PTFx09PTWbBgAYWFhbhcLt5++23p7otrFSGaIXalqfrr9XppaWlh1apVpKWlkZeXx/vv\nv09WVhYPPvggPT097Nixg+bmZtrb26WrOhlrlRhXs9ksOUFycnK44oorKCgo4Pjx4wwMDJCVlUVs\nbCzHjh2Twh/TvV+dtYbmdDrZunUrTU1N9PX14fP5cLlcHD16lCNHjtDa2iq3cjEAocLr9TI4OIhe\nr6egoIC4uDja29tRq9VkZGTwuc99jpGRERoaGmQF81S7moiCBiM7Oxuv1ysvU4VBhoLgyaBSqejp\n6WHLli2SF7GxsXGcMIdI9QrFJRPnD3GHlp6ezvr163E6nbz77rvs3LmTrq4uaeyi75NBp9OxcuVK\nsrOzMZvN/OlPf5JMYooyphW3aNEirr76ag4ePEhNTU1I49DT08OhQ4dYuXKlTDTIyMjgS1/6Eunp\n6dhsNsxmMz/84Q+l1NZE9/9cYxsZGUl+fj5arVbu5jabjfb2dhRFobq6msrKSvx+Py0tLbhcrhmR\n9MxaQxsZGaG1tRWPxyOjbHq9np6eHrmDBRP3hINAIMDQ0BB/+MMfOHToEIWFhRgMBhYuXMjll19O\nTk6OFM6A0JNfJ75GpB1NhzxHp9Nhs9koLCwkOTlZ7j6NjY3Y7XbpQkZHR48jkpmqn36/H7fbjcFg\nwOPxyMkfGxvLPffcI5VqRH9DyWYPBAKSibmkpASVSoXD4WDhwoXccMMNWCwWUlNTUZQx5ZbHHnss\nZArvwcFBduzYQVVVlaSCu/vuuyXTs8Ph4KWXXuK1114bt4hN1m+/34/D4cBkMjFnzhzWr19Peno6\nIyMj/Md//AfvvPPOOWWwZpIUPmsNTbiOIhImVm+haRX8padb2uByuaiurqatrQ21Wi0Ti2tra2WU\ncLr3Jn6/nxdffFESkU7n/UNDQ2g0GpYuXYpOp6O5uZn+/n5cLhcmkwmHw0Fra6uMdoaKgYEBkpOT\nsVqtZGZm4nQ65Xee6B2cK7H2XBgaGuKPf/wjLS0tXHfddcydO5drrrmGrKwsed612+288MILMn8y\nFAjXVbiGQvU0Pj6etLQ0fvnLX/Lqq6+e0ygma9PtdnP06FFOnz7NqVOnyMnJoaamhv37959Twil4\nrk1nPkxZYa2cW8P6h8A3ga6PX/bvgUBg+8e/exD4BuAD/ikQCOyYshOTVFgHZwYAMiT7lyoFERkI\nPp9vHIPxdCDOZtPVBRCLS3JyMqmpqQwPD9Pd3U1HR4cMt4e7yorxXLZsmcz+r6+vp7W1lZaWlk+0\nFW5O5qeF2dKvwIWiMlAU5QrAyZhkbrChOQOBwCMTXlsIvAgsA2zAu0BeIBCYdKaFQmUw3ZUkXIhI\n33Spxi8kJu7UF+L7CwNevHixlFiqq6ujra3tvOlgn9bY/7Uwk+8XqqFNV8P6fLgReCkQCIwA9Yqi\n1DBmdIdCfP9k/ZhpEyFhNhiYwF/iO4s2q6urMZvNBAJj8k8ul+vvzsg+zV1xJme0exVF+QpwDPiX\nQCDQx5hedTCXttCwvohZBK/XS19f36RVDgJ/q0YGn+53my5nyJNADrCQMSH4R8NtQFGUuxRFOaYo\nyrFp9uEiLuIzg2ntaIFAQApRKYryW+Ctj/87Iw3r2YS/ZZcpGMEl/MHRtpmEsi/ik5jWjqaMCcQL\n3AyIQqU3gVsURdEripIFzAGOzKyLU/Yl7PC+eM9k7xXpSiK7ezoQus2zEaLSWpQERUZGysTd4NzM\n6YzvRXwS09WwvlJRlIVAAGgA/gEgEAhUKIqyBTgNeIF7poo4ThciCz42NhaPx0NHR0dI9VLBxhN8\nGD7XZaeYZFMl/p7vM4TMrijvmU1Qq9WSjyUmJkZyZMyEy//TRvA4B6u2hpN9A5/OWe0zx1Ss0Wi4\n6667WLt2LcuXLwfGxNTvuusuqd98vjw3RRkTzRCl6zBWnyYuqhVlTFQwJSUFi8VCZ2cnbW1t45Qp\npxovk8lEfn4+11xzDYsXL+aRRx7h2LGxY2gww1Io4y4u0Y1GI3FxcVx++eXMmzePVatWkZ6ejlqt\nxu12c/vtt3Pq1Kkpi0jFGGi1WpYtW0Z+fj4lJSW43W7a29t54oknZG6i2NFD+c6hInjhEu2Gkzso\nXFxxRbFu3Tpuu+02iouLefvtt3nsscdobGycsqRH5GYaDAb0ej0mk0kmWxuNRgYHB+nq6gop7eqC\nhfdnC4SRrFixggceeACPx4NarcZgMJCbm8v8+fOl6Pm5zlfBrqIopQkOaWs0GpmF0N/fT0pKCnFx\ncZjNZkpLS+VqOdWkMBgMJCQksHz5cg4fPkxlZaWctELsL5TdUbh1arWa7OxsUlNTueOOO7jkkkuI\njo5Gq9UCYxHEf/3Xf+XRRx/l4MGDIVG3RUREEBsby+joKG1tbXJsg+Vmg5OeZ3peVavVREREYDab\nyczMRK/XS4GSySrCJ/Y9uHxFrVaTmppKUVERUVFReL1eSbQ0VTtiN7dYLMTFxZGcnMy6detIS0vD\n6/VSVlZGZWUlBw4cYGBgQKaLzWQMPhOGpigKjz32GLfffjtGo5F9+/bx1FNP0dLSwv33309hYSEw\nlogcXHgZDPEzt9v9iUx0lUpFVlaWLIzU6XTU19eTnZ1NSkoKtbW19Pf3oyhTE2i63W4SEhLQaDQ8\n+eSTcpcRCcLh8EYKmre6ujpcLhcNDQ1SUWfPnj1UVFQwPDzMZZddRnFxsaz7mqwAVNDp7dq1i0Ag\ngNlsJj4+flyam8gtDbcAVkBULixYsIBnnnkGr9fLG2+8QUtLC7GxsVx55ZXodDqOHTsWslpndnY2\nS5cuxe12s3PnTrxeL+Xl5fT19aHX63nooYdCuq4QrmZCQgL33nsv8+bNw2q1YjKZMJvN6PV6li1b\nRm9vL88//zxdXV3s2bOHwcFBXC7XtLOSZr2hKYpCTEwMt99+uyzAu++++6iurkar1fLKK69w1113\n0dnZGRKVwcTfi0nxyCOP0NrayoEDB2hpaaGjowO9Xs+cOXOoq6ujsrIyJMFwUembmJgoJ6zBYCAn\nJweTySTdyKkw0a3q6+tj586d1NbW0tbWxvbt2xkeHpa1c2lpaSxZsoSPPvqIjo6Oc55TxFlU8BUq\niiITpy0WCwaDgUAgQGRkJBaLhaamprAnllqtJi0tje9973tcd911REVFYbfbef3112loaCA7O5sN\nGzYQExMTMvmRoih8/vOfx2g0cvjwYcng1dXVJekIHA5HyH0UcyorKwur1Up3dzcDAwPExMRIhrTu\n7m4yMzPJzs7G5/NRWlpKQ0PDtLWsZ72hRUVF8f3vf1/6zj//+c85e/asdMFqamqw2+2yOnYyTHSD\nhMu0ceNG1qxZw+DgoCR68Xq9jI6OYrPZmDt3Li0tLSEl7losFq666ioSExOxWCyMjo6yYMEC5s+f\nT3V1dchBlWAj83q9DA8P4/F46O3tpbW1ddxOY7PZsNls9Pf3Yzabz8nbKBBMhApjuZ0xMTHk5+dz\n+vRpSfp6ySWXsHXr1pB2CeGSGgwGWbKydu1aoqOjeeutt3jyySc5fvw4gUBAkv6IzPlQAk2KotDX\n1ye5PcV3S0pKkhrc4QSrBElRREQE7e3tnDp1ihMnThAdHc3ChQvRaDR0dHQwf/584uPjcbvd1NfX\nzyj6OqsNTavVcuzYMdLT03nkkUf42c9+Nu5cpdPpsFgscvIJ5crJELwaGY1GrrvuOu655x76+/up\nrq7m1Vdfpbu7W7pqzc3NvPPOO/T19YXEzbhx40YWLVqE0+mUJDQ+n4/KykpKS0sBQo5iir6KSm3B\nbWi1Wlm1ahWXXnopl19+Oa2trbS1tUnR88ky4ydmpaelpVFQUCD7ZLVauemmmzAYDLz//vtTnk2E\nkel0OlavXs2NN95IUVERb775Jt///vclGZB4bX5+PjExMfj9frmrTgWVSkVtbS3V1dV0dY3lsWs0\nGjZt2kRUVFTYLNBer5eBgQEqKio4ceIER44cobu7m7i4OGw2m9zxRRBK8IrOhGZ91hqaoigkJCQQ\nGxuL1+vll7/85Sfy8axWK/PmzUOtVssIUbiZ7Ha7nRdffJHc3FxefvllKisr5cTJzMyko6MDh8MR\ncrlMQUEBPp+PU6dOSSJWt9stOSwEr8n5zpLng8/n49ixY3R2dmKz2SgqKiI1NZXBwUEqKiqorq6m\npqbmvJyO54JarWbFihXk5ubidDqx2WwsXLiQ+fPn09HRgdls/kRwaWLbwkvQ6XRce+21pKWlcejQ\nIb73ve99grfDYrGwadMmYKzesL6+PqRQvAiEiCisXq8nKyuLrKyscSSt4bq4LpdLUqBbLBbmzp1L\nfn4+DoeDtrY2yRlSWVnJwMDAjO4UZ6WhiQeXmpqKx+ORvCDBLp9araakpASNRiOrasP1nVUqFVVV\nVbI26ciRI4yMjMgQclZWFp2dnWFVcEdGRkoORlFuk5KSQmNjozxPGY1GyUcSKvx+P93d3ZIkR61W\n09LSQmtrKydPnpQh6lDPEEKM4vbbbycuLo6Ojg4iIiJISUmRq7qIfIpFRtTnTYQ41wlX7u233/4E\nf4ko2CwpKZHPdNeuXSF9d7VazZw5c+TYPfTQQyxZskSOZ2RkZMhcHmKHFrtTRkYGKSkpFBYWMn/+\nfAwGA5WVlWg0GpKSkqQ34ff70Wq1f1sV1qJyODMzk6NHj/Lkk08Cfxa8sNlsKIpCcXExNpuNEydO\n0NvbO+VAizsc8XdcXBy5ubksW7aM5uZmDhw4ICeURqPB6XRSWloaVtFfb28vfX19pKWlsXnzZkpK\nSvjggw/4+c9/jlarZcmSJfKMGS5ElolOp6OsrIympiZpWE6nkzlz5tDb2ztlP1UqFddccw233nor\nxcXFqNVqkpKS8Hq9WK1WoqOj0Wg0FBUVMTg4iNfrpaOjYxyRajACgYAMVPX29rJo0SL8fj/t7e2M\njo5iNBp5+OGHKSoqwmAwUF5ezo9+9CP27dsX0vksJiaGTZs2ERsbK+sFxWKWlJQkSVOF6xzcr4kI\nBAKSUW3lypXMnTuXyMhIyYLc0NCA0+nE7XZjtVrxeDxotVri4+Mlz8l0rjtmpaGJLdrhcOB0OqXC\nh0ajISsrCxhb4ZctWyaJY0J5YOLeTa/Xo9FoWLRoEcXFxSxevJj6+nr++Mc/ynOQOB92dHSENag7\nduwgNzcXo9HI4sWLiY+Px2KxyCyRU6dOjdudQ4Fwm+Lj4zEajec8i4rI21TnKRgz1Dlz5qDT6aTh\nlJeXc+jQIa699loURZHMVYLaT5Afna/9np4eNm/eLM816enpWK1W2traKCkpIS0tjaGhIYaGhvjR\nj37Enj17JiX8Ce7zyMgILS0tMgOkvb2d1157jfz8fKxWqyT/CdY2m6w98RrxPhhzZZ1OJzt27ODQ\noUMkJydLlzQzM5PDhw/PKB1vVhqaKONvamqiu7uba665huuuuw5FGSNLHRkZYcWKFaSkpPD666+z\ndevWkC89ly5dikqlkncmzc3NxMTEkJGRwfXXX8+uXbukmEJFRYWcXMGZEpPhzTff5N133yUrK4ut\nW7dKTS/BBW+320Pqq7gWSExM5O6778Zut/PKK69gt9vp7+/nzjvvxGAwsHXrVnm/JijTzgfxHfx+\nP6+99hr79++X59L6+nry8vJYu3YtOp2OmpoaDh06RENDg7w2meyy3eFw8N577wF/PodaLBb+67/+\ni+LiYg4dOsSzzz7LkSNHwkpJ8/v99Pf3853vfEceJd577z38fj/33nsvK1askMGLYCayyXJYhTLN\nk08+SVFREcuWLaOpqYn33nuPDz/8EEVRKCkpkVyUTU1NDA4OhmTI58OsNDSxvff396PVaikoKMBq\ntQJjPB8Gg4GIiAhKS0vZtm3buMjWZG3C2CSIiorC5XKh1WpxOp10dXURFxcniVrF+WkihVwoAxwI\njOkE1NXVyTser9eLw+E4b3HluaDVaklOTuaKK65g8eLF9PX18eabbxIZGYnVauX2228HxtzJX/3q\nV/JyORTtAa/XS2dnJ11dXZSXl8sgklDRHB0dlfeJ4u5wqgkWvNuJs9zo6Chz585FrVbz1FNPyTNw\nuBCU3I2NjbJtRVGYO3euzOYJzt6YbEEUffR4PBw9epSKigqOHz+OyWSivr4er9crJZxEplFNTQ1u\ntzvsnNdgzEpDg7EQ7NDQEN3d3dI4RMZ5IBCgvb2dn/70p5JEdCqIwc/MzCQuLo76+npcLpdkhdq1\na5ecCMGTdTqrl9/vlw/f6/Wyf/9+7HZ7SK6S6KvBYCAjI4N169Yxb948hoaGWLlyJX6/nwULFpCQ\nkEBvb6+cXKOjoyEHbcTrJ36/hoYGPvjgA4aHhyWx6kQavVAXG2F4nZ2dcqeYDkmRQLDIhpgHOp2O\nzs5O7HZ7yGQ/on+BQIC2tjZ5OZ2eng5AXFwc8fHxaLVampubGRkZoa2tTVKaTxezOqlYUcbEJ2Jj\nYyksLESv19PR0UFbWxt9fX1h7RDi3Jeens6cOXMoKiriwIEDOBwOBgcH6ezsDEuaNZTPu/feeyku\nLua+++4LOypqsViIjo7mlltu4cEHH0Sr1TI8PCzD+e+//z4ffvghp0+flm3P9FkK1Zbs7Gzq6+s/\nca0xVfsiyBQVFUV6ejrXXnstAwMDbNu2TbL/XgiIZ5mRkUFcXByBQICysrIpFUmn6rPJZCIrK0vK\nFQu3saWlRaZgTcwOCjWpeFYbWtDvx93nhOPKTWxDJM7qdDoZVPB4PNOSS50KmZmZGI1GampqwhYi\n1Gq1MnT9zW9+k8WLF3P8+HGOHz9OXV0ddrtd7pgXst9arZaYmBgGBwfDFnUQCdtZWVlce+21XH31\n1WzevJmdO3eGVFkQLkQAROihTXeRFP0W4y2y+D0eDwaDAbvdLiWbJj7HvylDu8CfBfxtc2HMFNPN\n1g9OxRLpWG1tbZ+Z+jb4JPPYVBUXFw1t8s+T/54N3/9vDefyPj6LCGXBuWhoF3ERnwJCNbTp38Bd\nxEVcRMj4TBraTMoV/lYQHCC6iNmPWXuPNhHBEUONRiMjhX+POBflwEw1AgTdACCzby7iwmHWG5pI\nAhb8Dlarlb6+PlpaWqaVsR8MsRuoVCrS0tIoLi4mPT2diIgIzpw5w/79+3E4HLKidzpQq9VkZWXh\n9/tl8eJ0+2wwGDAajURERMi8QUF3MHF3C6W/gvhHXI7/4Ac/oLu7myeffJKPPvpoWn0UEMWVK1as\noLi4mN27d1NbWyvZti5EbECj0Uj+E7vdPqPnFAyRZB0bG0t9ff0FYTGb9YYmICRkk5KS5J3GTBBM\nUrNgwQJuuOEGPnK2PgAAIABJREFUUlNTycnJkSUoQqQ+WKEzHOh0OnJycvja175Gf38/5eXl7Ny5\nc1oTTWSx5+fnM2fOHE6cOEFVVdW40pWJFeShQGhvd3V1yUx9sbNNF8L7EMnQzc3NmEwmUlNT6enp\nmfHltchV/fa3v01eXh45OTn87ne/Y/v27VK0crqGrNfrufLKK9mwYQMajYZf/OIXnDp1akb9hc+A\noYkUICHb1NXVJWvEpnvXo9frWb58OVu2bEGlUjE0NMQDDzzA6dOnKS4u5itf+Qrp6elSLyzcByeK\nCf/5n/+Z1atX8+GHH8qasWXLlnHy5MkpxczP1e9vfetbrFy5Eq1WS09PD06nc9q1ePBnDhFRH/eT\nn/wEnU5HX1+fTKyeLkROpUgANpvNzJ8/n89//vM8//zzNDU1yd0n1BxClUpFbGwsb7zxBvPnz8dk\nMskFUK/XU1FRMSOPQa1W89xzz7F69WqZaJCYmDittiZi1huawMjICF6vV/JiiHNE2HVBGg2XXHIJ\n9913H4qiUFFRwbPPPstrr70mRQ6tViuXX345DQ0NIaV5BbugohzHYrGQl5eHw+Fg+/bttLS0kJyc\nLBOEy8vLw64IXr16NcnJyZw8eZLS0lIGBgY+kRkS7niISonh4WGZra7VauV3me6kFfmUwlhFGp3I\ntn/qqafo7+8HQgtuKcqYHO6NN95Ieno6iqLQ0tIid876+nq6u7unn/Sr0WCz2Vi5ciVGo5FAIMBb\nb71FU1PTtNr7RPsXpJVPASaTSZbaezweqqur2b17d9g7W3x8PGvWrGHOnDns27ePhx56iMrKynHu\nVyAQYPv27fT394fMwSjYtIQUsOCOHB4elmeTmJgYrr/+egKBAOXl5VO2Gwyz2Ux2djYOh0PWyU1V\nIxYKzkUD4Pf7MRqNU/KPnA/BrqOo+ZozZw4FBQVERUWRl5eH2WyWWtOh9F+v11NcXCzzJ8+ePcsz\nzzxDVlYWV1555bgk8XAhmMvuuOMOdDodHo8Hl8vFa6+9FjJT11T4TBiaSqXii1/8Ihs3biQlZUwF\nqqamhiNHjpxTa3gyiGLB/fv388ADD4zLUI+MjOT+++/nyJEjvPnmmyE/NJPJRHp6OkNDQzQ3N8ui\nyeeff574+HgKCwtZu3YtGzdu5MyZM5w+fTos4zCZTGzatIn6+no2bdrE4cOHJaWBGJ+ZZGEEv0+4\nvf/0T//EK6+8ErKoezASEhJYv369rB0zm82cOnWKkydPSn6OYF3vUMb5pptu4uabb0alUvH5z38e\nl8vF9ddfz5o1aygsLGRgYEAeL0KFVquVhcAqlYpdu3bR09MjK8pPnz59waKvnwlD02q1FBcXY7Va\nJcGnwWBAo9F8gjxmKhgMBrq7u2loaMDv98vQdn5+PrfddhtWq5Xjx4+HXNIi+ifq54Qr5/f7aWlp\nITc3l6997WskJyej1WrZvXt32LtZSkoKV155JWVlZbS1tclSETEOXq9X0uNNJ8gCY8YmXN5FixaR\nl5dHVFRUWG0J3HjjjWzYsIHm5mZ2797NwMCALOkRFBHhLI4qlYq1a9eSlZVFZWUl8fHxXHHFFfz4\nxz/GYrHI4IjRaAyrn6Li3u/309zcLP8kJSXJHMcLlTkVishFGrAZsDImavGbQCDwS0VRYoGXgUzG\nhC42BgKBPmXsyf0SWAcMAV8NBALHp9tBtVpNeno6JSUlkgLu9OnTmEwm7rjjDt5++20aGxs/QQZz\nLqhUKllj1NraSn5+Prfffjvr16/HZrPh8XjYs2cPWVlZ4wTNpzLk/v5+ubMGVxZERUWxYcMGhoeH\nefjhh2loaKC0tDTsiKnNZuPIkSO8/fbbDAwMYDKZ+NznPscXvvAF8vLy+OCDDzh8+DCvvPKKLFgN\nFYIPU1QVZ2RkkJqayiuvvEJlZWVY/YSxMX7wwQcxGAw4nU5JqS0WNb1eL4MwocJkMlFQUEBSUhI5\nOTls3LhRMmKJvqelpUmp4FDb9nq9kkHa5XIRERHBt7/9baxWKz09PZw6derTMzTGVGH+JRAIHFcU\nJRL4SFGUXcBXgfcCgcB/KIqyCdgEfBe4jjG5pjnAcsZEC5dPt4OCaqyyspKKigoOHTpEbGwsKSkp\nJCUlsXDhQgYHB6cMGYuHIkhdBDlqRESEdBV8Ph8Gg4FFixbR0NDA2bNn5fsnG/DgQsfgz7vtttuY\nN28e69evp6amhuHh4bAjmKImavPmzTQ2Nkp6NbPZTGxsLJGRkcybNw+Xy8X27dvDLkcRbqc4T3Z0\ndNDY2MixY8emVegoorhVVVW8+uqrsg21Wo3ZbCYuLi4szhTx3Hp6eoiJiZGGIUhTBY15VFRU2Fky\n4pnl5+dz4403cuWVV3L11VejKAq9vb08/PDDMwoIBSMUDWs7Y6qeBAKBQUVRzjAml3sjY3JOAL8H\n9jBmaDcyJiwfAD5UFMWiKEryx+2EDRH6PXDgAHv27KGzs5Pk5GTcbrekCCsrKwv5bqa3t1fWojkc\nDkpLS1GpVDQ1NeFyuSguLqagoIC2tjZJAR0KPcBEI4uMjJQ05mfOnJmRr9/T00Nvb6887KtUKrq7\nu6mtrZWhbcHkNB2IC2+9Xo/dbqerq0v+LFxoNBr27NnDO++8w+HDh2V/NRoNycnJLFu2jHfffTes\nBcHj8bB9+3by8/NlgCU2NhabzUZOTg4JCQk4nc6waMEBGWXu6elh9erVXHrppXLHBaY9nudCWGc0\nZUw0fhFwGLAGGU87Y64ljBlhc9DbhI71tAwtEAjQ1dXF9u3b6erqklR0ubm5qFQq9uzZQ0NDQyh9\nR1EUmZkgjK2trY3BwUGOHTuG2+0mOjqapUuX8oUvfIHy8nKZGTDZ+UdcFItarGXLlvGb3/wGi8XC\ns88+K897YncOtVhTnB8F/4ZYgcWOlpCQgMlk4k9/+hPvvvsuPT09YZ99LrnkEqKiosjNzSUqKopt\n27bJ6uKenp6wC1YVReEPf/gDVVVVOBwOaRjifCZUX0INNIn7uM2bN8tnICK8t956K1dddRWFhYVs\n2rSJmpqasN3ywcFBDh06xA9/+ENef/11nE4nq1evpr6+/oJV20MYhqYoSgTwKnBfIBBwTKjpCoRb\n6qIoyl3AXVO9TjAWjYyMEBUVhUaj4bbbbiMxMZHXX3+dEydOhExbJv4WijExMTGkpKTIlVBRFOLj\n4zEYDOh0OiIjI4mMjJR8HOcyjuBxEFQAX/7yl4mPj6eqqor7779/3O/FihlK2FzcyYk+A3LC3nPP\nPWRnZ9PT08OuXbs4c+bMtDIicnNz2bhxI+np6Rw6dIisrCzq6+sZGhoK28hEn0dHR4mIiJC0dSJC\n2tnZSVlZWVjtiqsCMelFRk9WVhYZGRlysd23b9+0+isgqrS//vWvS42EC+U2QoiGpiiKljEj+0Mg\nEHjt4x93CJdQGZPa7fz45yHpWAdC1LAWHO06nY6oqCjy8/NZuHAhfX19MuUmVEIa8dDEbiZ4OWJi\nYqSAhZjQIronJvpUbpRI9M3Ozmbu3Ll4vV7uvfdeyTEh8gojIyNlfuJUD1HsaFqtVk5crVbL/Pnz\nmTdvHj6fjzNnzlBWVjatiGMgECAiIoLMzEysVitZWVnodDocDseU1HXng9/vZ8mSJZJwdP/+/dTW\n1jIyMoLL5ZJMVqFALDSCNFX09/bbbyc7OxuNRkN5eTm7du0KSw7rXJg7dy5tbW0cOHDggu5kAqFE\nHRXgaeBMIBD4RdCv3gTuBP7j47/fCPr5vYqivMRYEGRguucz+DP1XH19PUlJSaSkpHDo0CGefvpp\n2traQm4nWAxdnD+OHz9OR0cHc+bMwefz0d7ezjvvvMPZs2fp7OykoaEBt9sto2bn65+ATqfjpptu\nQq/Xc/z4cU6ePCkJOgVHo9frlUy7k0FRFHw+H16vF5PJJCea0WhkeHiYL3/5y5w8eTIkhubzIRAI\n8PTTT1NRUUFhYSEvvPCCVPycLkZHRzEYDHz5y18mKSmJvXv38vjjj3Pw4MFpkR8FAmN04z/5yU+4\n4oorSExMxOPxUFdXx9e//nVJBTcTI9PpdHz7299Gr9eTmZlJXV3djJnQJiKUHe0y4A7glKIoJz7+\n2b8zZmBbFEX5BtAIbPz4d9sZC+3XMBbe/9qMe8nYgbirq4sjR45gt9uprq4O6/3iAYuzjnAVBgcH\nZTRPqIAKWm+/3y8NYqrBFlkUbreb/v5+2tra5O4If1YwEVGyqdwSEWDxeDwMDAxIFmK1Wk1jY6NM\ncZrpJBgdHeXw4cMcO3YsbOGNc8Hv97NlyxaGhoZYu3YtBw4coLGxcUYkQoODg1gsFsxmMxqNhv7+\nfnbt2kVlZeWM3EX4M7Wf3+9Hp9NJDYPga5oLgYtUBhMg3Esx0UMZH61WK41AELmcq0bsIjHQ9KHT\n6SSt+kzdxHNBCFiE6x0ELnKGfHoIPsP9Jfz7i5i9CNXQPhMpWLMdM8kzvIi/D3wmOUMu4iI+a7ho\naBdxEZ8C/m5dR3GuErVkQtFx4uV3KLrYnzYuEsD+5fCXClj93RlacIaIVquV5DQqlUqSu4gzl1qt\nxuv1XtAMgen2V5SCKIpCdHS0FFMcGhqio6NDXi9cDMZMD2LBFdn/50oUnwk+84Y2MWMj1BxCjUaD\n1WolOzsbvV5PeXk5o6OjMrwbPPDBl93h9klQAkwnPSo4fzIxMZF169YRFxdHRkYGaWlpMvH5pZde\nkonHM10UxPUGcEEn2oWiCReyXRdiQREejcFgYPHixej1ellH2NfXh9PplDJeMx3Xz4yhiXQkcXuf\nm5vLfffdR2xsLP39/TzwwAOUl5dLQbrzIdiAvF4vVVVVuFwuSSmm1+ulLnJDQwN6vT6si2Gx05jN\nZhYuXMjGjRtJTEzk2WefZffu3ZInIxSIz9Tr9cydO5c5c+ZIJVS/309hYSFXXHEFl19+OQ8//DB7\n9+6dss1gd1lUGcTGxrJ8+XL+8z//UxZ7tre388EHH/DVr341rAVGURSppmo0GqXA+/z588nLy6Og\noICHH36Yurq6cfmjk32GooxJNImyo7fffpuDBw/KpACNRsPIyEhYzyn46GAwGLj11lvlXBK1dI8/\n/jgNDQ0zYtUSmPWGJgYjLi6OwsJCVq9eTUlJCTExMeTm5qLX6/H5fMybNy8kwhsxaD6fT9ZFidQg\nRRnTT8vLyyM5OZn+/n6cTmfIq5miKNhsNrRaLTqdDqvVilqtJiEhgYKCAg4ePDitMdDpdDidTqnn\n5nA4MBqNXH311dx4443k5+ezZs0a9u3bN+WEFTuWqFC/7LLLWLNmDStWrCA2NhYYy8KJiooiJycn\nrEJK0VehW6YoCgMDA8TExHDrrbeyYMECtFot11xzDS+++CK9vb1T5lOK5/+FL3yBr371q0RHR1Ne\nXs7p06fRaDTEx8eTlJTEe++9FxZ/THDmzdDQEBUVFQQCAfr6+qR0U3d39wUj6Z21hiZWXJPJRHx8\nPPfccw9FRUXYbDbsdjunTp0iLS1N5gDa7faQJ4RwO0RakHg4KpWKvLw8Vq9ejcfjITo6OmT6MkVR\niIqK4nOf+xxlZWVUVlbS0tJCY2Mj3/jGNygrK5v2WIjynuPHjzMwMIDb7ZaciSUlJaSnp1NUVDTl\nghBsaImJiVitVlatWiXF/Orq6ujr66Ovr4/U1NSwJ5lInE5NTWV0dJTW1lYZSLJYLERFRaHT6UhM\nTCQiIkIudFMlbKvVatavX09ycrJMPVMURVZbK4rCRx99NGlO6vkg1FnPnj0rJXxF9UYoUsWhYlYa\nmk6nw2azkZaWxrXXXktOTg5vvfUWP//5z8etgi+//DJXXXUVNTU1vP/++yEVV55rIgbTxHV3d7Nt\n2zbq6+tpbGwMOct+3rx5/Pa3v+WJJ57g+PHjcjIITkcxyQW/SKgQk3dkZITOzk5ZsZyRkcHixYsx\nmUw0NDRw7NixKcXMRYlNfHw8X/jCFxgeHua5556jp6eHkZERSceg0Wj4zW9+Q3t7e1gTV7j3gtRG\nJCgPDw9jMBgYGRmhv7+fJ554ArvdLtsOZSHLyMhArVYzOjrK3r17qaqqIisri+LiYhITE3nqqado\nb28Pua/B0Gg0xMbGSv3yoaEhyWJ2oTArDU1QX6ekpJCenk5FRQVvvvkmg4OD4x7KwoULcbvdnDlz\nJuyye2FYYmKKHMWzZ8+i1+vDYtdSq9UsXrxYZn4H7wQ+nw+32y01l0WgIZx+JiQkkJiYSGdnpzyn\nrlixgri4OOrq6jh8+DClpaXy9XDuySt2PJGT6XK5pJqlUD4V/fN4PCEV1AYjmBJheHhYPhOv1ys5\nF/fs2SOjpKG26fV6aW1txWKx0N3dLV06USkQGRkZNgOWgDhTlpSU0NTURExMDD6fD5PJJItWwyFq\nOh9mpaHpdDouv/xyvva1r2EymWTUR3ANJiUl8W//9m9kZWVRUVHBL34xVr0T6llKrVYTGRlJfn4+\ndXV1kohUURSSk5MlUWvwVcBU0bL4+HhJKyBeJ9w0jUZDSkqKdM9ChdBWfuihh4iLi+Odd95hZGSE\n9vZ2Tp48ybFjx2QgR7hkLpdLFspOhJjcHR0d7N69m9HR0XHfXa1WYzQaycnJwWg0sn///rCCAKJ2\nMDIyUpIlRUREkJaWxnPPPceHH35Ia2tr2DuFz+fjwQcf5LbbbqO+vl6ey370ox+RlJSERqOhvb09\n7HbFmfr73/8+N9xwA729vZSUlJCSkkJOTg4+n4+ysjJuvvnmGVdKzEpDS05O5uabbyYxMRGz2Uxe\nXh4PPfSQrMsqLCykqKgIlUqFy+WS/BOhXDaKwMqSJUtITU1lZGRE+vaRkZGsW7eO0tJSWlpaZJnL\nVFndgUCAI0eOUFlZSX9//7gAgt/vx2KxsHjxYpqbm6mtrQ15HASxpzh/FRQUUFVVRXV1NQ0NDfKc\nJhYhi8XCwMAAra2t53Wjxe5dV1cnqxSEWxsZGUlaWho33XQTAN3d3SH3Nbj9oqIihoeH6enp4c47\n72TBggX88Y9/xO12TzssX1ZWhslkIjExkeuuu465c+ditY6xZwj9gHChVqvJyMggOztbnsvi4+NJ\nS0sjOjoajUbD0qVLSUpKkgvEdI1tVhpaYWGhpA9zOp3ExMRw1VVXYTabMRgMWCwWdDodXq+XlpYW\nWeovaszOBbErWa1WSkpKWLp0KTU1NWRlZeFwOIiMjGT9+vVcffXV1NXVSY5AlUqFx+OZ9E7J5/NR\nWVnJ//zP/4xjNw6mWIuKigqrQFEYz8qVK7FYLIyMjHDw4EEOHDhAVVWVLCgV54uoqCisVitGo3HS\ns4pwxcTEFNFWlUrFnDlzuP7667nxxhupqakJOxgi+Dwuu+wy4uLiKCoqIi8vD51OR0dHB/v27aO7\nu3tak9XtdtPQ0EB8fDx33nknsbGxcpHwer3jav9ChZgv9fX1xMXFUVFRwb59+7j55ptZvny5rIEr\nKiqiu7t7yqujyTArDS0mJobBwUHeeecd/uu//ouWlhZ0Oh1z585l3bp13HXXXfj9fhobG3nqqafo\n7u6WA34+iKjgo48+Snx8PHv27OHNN9+U/vhPf/pTFi1axH//939TXV1NIBCQIWrR/vlc08DHBEJv\nvfWW/L+A3++nqamJvXv3YjabQw6Xq9VqsrOz2bBhg6Rw+93vfifPqWLFHR0dJSkpieLiYgwGA1u3\nbg2pSFUEZESoPykpiX/4h38gMjISl8slqew6OzsnbWsi3G43W7duRavVkpeXxw9/+EM0Gg3/+7//\nS3t7O1qtdlpumN/vJyIigm9961tkZGQwMjLC9773Pe6//34SExO55ZZbePzxx3E6nWFJVjU3N/Pw\nww/T0dGB1+tFpVLR2dlJXl4eer2etrY2KisrZ1S4CrM0qbi9vZ3q6mp27txJTU0NAwMDaDQa5s6d\nS0REBL29vbjdbrZt20ZtbW1IW7qiKMTGxjJnzhwGBgakosvw8DAej4fOzk6qq6s5e/Ys7e3tKIrC\n0NDQlJG8YIiAyrl+PjIyIkmBwgmICLoGoYUmvovJZCImJobk5GRycnJIT0+nq6sLj8cjd7vJIL6P\nRqMhOjqaFStWcOrUKd544w2qq6vR6XSkpaWFTTnn8/k4deoUpaWlbN++nddff53HHnuM0tLSGdEk\nqFQqIiMjpZE9/fTT8pwp0tMEGWwoEIumqHwXc0iv1/PP//zPZGRk4HK52LZtGy0tLX+bZ7SPPvqI\n3t5empubZZhco9Gwc+dOXnnlFZ544glSUlI4ceIE/f39eDyeKQl0VCoV6enp+Hw+tFotGRkZJCQk\nyDPevffeKwdbuCR6vZ7e3t6QBzk4CCJo4gKBACkpKTz66KMsWbKEW265hSNHjkzZls/n4+zZszz3\n3HOUlJTg8Xj45je/SXl5OZGRkXzlK1/BZrNJluRTp06xY8cOurq6Qo7AinB/WloaPT09HDhwgISE\nBG655RZsNhsrVqzgwIED4yKzoUDwohiNRh5//PFxzzGUReB843HixAl++9vf8sILL9DY2IjRaKS0\ntJSoqKhxtAahahGIRAWtVktUVBQmk4na2loZwfziF7/Ihx9+eEHSvWalofX19TEwMDCOvLS5uVk+\nbIfDIQlF4c9BkMnOUYoyJvPT3t4uSVS9Xi8ul2scaYy4UxP0BKIPiqKENeAizSkQCPDoo4+ydu1a\ntFotXV1dIb1fXMx+9NFHvPXWWxQUFHD11VezdOlSjEYj8+bNQ6PREBkZyfHjxzl06JDc6c/Xz3O5\nvh6PB7vdjtlsJjIykksuuURqgonMkFDPauKsFxMTQ3R0NIsWLZK04mIhFGepcAMLgUCAkZERXnzx\nRVpaWmQS9euvv05GRoY8c4rnFGrb4trFarWyZs0aGdJ3uVwXzMhglhpacNBAfNHgc83o6ChdXV1o\ntdpxvH+TDa7X66Wrq4utW7cyMjLC2bNn6evrO6++mIg0ikkW7qQIBAJSDnjVqlXo9Xo8Ho8k2Qm1\nnf7+fn7961+Tm5vLqlWryMzMRKPRMDw8jKIonD17ltdee43m5mZ5PpkqOyT492KRcrvdzJkzh6ys\nLEm5XV9fL9l6QzU2tVrNypUrKSkpQavV0tvbKwVFFEWRvB/h7pKiDy0tLbIvPp+P06dPU1dXR3p6\nOmazGbfbPeW9V7DbKC7ZIyMj0Wq1tLW10d/fz7/+67/+dQhUP02Ie53zhevFIEVFRckw9lQBBr/f\nz+DgIL///e8n3Z3EBJiMNDUUiMWgr6+PH/zgByxatIju7u6QNddEX7xeL2fOnOHMmTNs27ZN/i5Y\n5CHU3SHYtRV/a7Va+vv7pbBjVFQU77//PhaLherqajweT1jlNxqNhoULF3LllVfKBbCzs1MmEQfr\nD0wnIBLsFhsMBmw2m4y8Wq1WOjo6pmxX/H5kZERmsLS1tfHBBx/wn//5n2H1KVTManIeYWznesjB\n/n5wDdlsRExMDFlZWbS2ttLZ2Tlr+jnxXCuyTiwWC9nZ2TQ0NEg3LVSoVCpsNhvJyckYDAZOnTol\nZZou9PfWarXk5uZis9morq6mvb19RovjdBD4e2HB+qxQuM1ULPDThFjEzhdFDeX9wS7qX/I7i88S\nNX+fNv5uDO0iLuKviVANbVbeo13ERfytYVYGQ/4auNC8IBcJdP7y+CyN8d+toYmIW0xMDDqdTt7b\nhSLRO1mbIudSpBpNvD4I5uOY7RBnNZHeNtsmc3DR6IVeKINxIdqeiYb1D4FvAuIG9t8DgcD2j9/z\nIPANwAf8UyAQ2DGjXo7vD1qtVqZGAVK3OdRgg5BuWrVqFdnZ2fh8Po4ePUpdXd20DU1MSpERIeqy\nznU1MVne5KeF4CCC6Fdw/3Q6nWQHE/dSfy3avXONlbg/FWMenNxwISOcF8qQpwyGKGPaZ8mBIA1r\n4CbG1GOcgUDgkQmvLwReBJYBNuBdIC8QCJw3JHSuYIgYSPFF9Xq95Ma46qqr0Gq1LFy4EJ/PR01N\nDZ/73OdCyq4W+YYJCQl885vfpK+vD5PJhEql4u233+bYsWOTvv9cEHprsbGxLF26FK/XS0VFxbhS\nfkFt5/F4JNvWX8PQxEIl6ub0ej1ut1suPkajkYyMDO6++26GhoZ48sknaWhokIWcU/U5OI9TGK2o\nyRO7eDgh+OD2xGImEgGuueYazGYzKSkptLa2cuTIEcrLy+nq6pJFqOFC9FUYsMhTFd9lYt9DDYbM\nRMP6fLgReCkQCIwA9Yqi1DBmdIdC6dA5Ph+dTseGDRu45ZZbSExMpKWlRSaSigtSoRsWSntGo1EK\njxcUFEh6hJUrV3Ly5MmwV27xUDQaDZ2dnRgMhnEVv6KvUVFRM7pHE5PWYDDIlKRw6ABEG4FAQO5S\nIyMjkr9So9FgMBgkQZHX65VjHAofiXidoBwA5KRNTk5Go9Hgdrtpa2sLORE8+DUajYaIiAhWrVqF\nxWIhLS0Nk8mExWJBo9HQ2tpKVVXVtK9R1Go1OTk5FBQUAGPJ7Xa7nf7+fnw+n6y8mI4Bz0TD+jLG\nBAe/AhwD/iUQCPQxZoQfBr1NaFiHBbEiiRUtJydH8kU89NBD+P1+ysrKSE1NlUSi4WTY22w2qqqq\nqKmpob29nWuuuYbrr7+e3bt3U1FREVYtljiL+Xw+YmNjpZC5x+NhZGSEf/mXfyEuLo6zZ8/y3//9\n31NOBI1GQyAwRjmgVqtJSkpiwYIF/OAHPyAtLQ2DwcCHH37Ie++9J9PI9u/fT1VVVcjfXyC4nstm\ns1FQUMCyZcukHl1XV5ekOjgfxC6Ql5fH8uXLee+996Sedn5+PvPmzePWW2+lqqqKo0ePsn37dlwu\n15TnvuAzmNFoJDMzk6KiIqKjozl9+jRbtmxBUcbkkNevXy/1xqfDR5mYmMivf/1rLrvsMnw+H1VV\nVXz3u99lcHBQzq1wU8aCMRMN6yeBHzN2bvsx8Cjw9TDam1TDOtg3Bqivr6erq4vKykpcLpcMOIgS\nl1CIeYKSOE3LAAAgAElEQVThcrnYvXu3zHY/dOgQ6enpWCwW6VaFs3KJ12dkZLBu3Try8vJQFIW+\nvj4WLFggk21DCSqIXcBmsxEXF8d9991HQUEBFosFh8OB3W7n5Zdfxuv1YrPZWLBgAYODg7KOLlyI\nFKaVK1dKnXCn00l9fT3t7e1TpmAJd3TDhg3k5eVx9OhRyV951VVXsWzZMoaHh7FaraSlpcmdL1Qo\nikJiYiKpqanExsZy8OBBmdupVqtxOBy0tLTgdDqnXc7y7LPPsnLlSvr6+igtLWXfvn1UVVXJrBaY\nWWRz2hrWgUCgI+j3vwXe+vi/F1TDWqwigqGqvr5eEqpoNBoGBgZ49dVXw9JFhjG3oLOzU57rWltb\n2blzJy0tLURERMiix3BWsEAgQGFhIWvXriU+Pp6Ojg6Z+Cwy7afazUT/oqOjKSkpYeXKlSxcuBCX\ny8Xvf/97Dh8+TH19PYODg2RlZXHFFVeQmppKREREyP0MhlqtJjMzky996UsoiiJdW71eT2VlZcj0\nA4LkVaPR0N3dLZVVT58+TUZGBomJiZKbc6pSGeEyBp/vEhISJKltQ0MDLpdLzg2v1/sJcqFwYDAY\nWLlyJVqtll/96lds27aNzs7OcUWkn0bU8Zwa1srHQvEf//dmoPzjf78JvKAoyi8YC4bMAaYuwJqA\niRn1YvLn5+ejVqu59NJL+eMf/8irr77KoUOhH//E+aS9vV1WCQQCATo6Ouju7iYuLo5FixZx9913\ns2fPHknHNhmC6QBuu+024uLiGBoaYs2aNdjtdu68806pkRwbG0t3d/d5d8vAx6U5w8PDdHd3Y7FY\n+N73vsfu3bvp6+sDxiZiSkoKMTExZGRk8Mwzz7Bjx45pRcZuuOEGvv3tb+P1evnpT3+K2+0mNzcX\ng8FAZ2dnSGcpv9+P0+nk6NGjtLS00NXVJRPD+/v7UavVrFq1CqPRyPHjx6d0G4MjswaDAavVSmZm\nJo2NjdTV1UmOGJVKhclkkpXw0dHRmEymkCskNBoNX/7yl/m///s/RkdH+fGPfyyJnvR6vSSGErLL\nM8FMNKxvVRRlIWOuYwPwDwCBQKBCUZQtwGnAC9wzWcQxpE5+7MokJiYSHR3N8uXLycrKwuv1Yrfb\nwzpPCRdPp9PJuy4BlUqF1Wrl6quvJjo6mgULFpCSkkJvb6987/naFO6TwWBgcHCQ7du3S63p4uJi\nUlNT8fv9XH755ezYsUOuyOeCiHQZjUbOnj3LBx98wMDAwLjXiAnQ2dnJ/v375WIQjrGpVCrWr1+P\nVqulvr4eh8NBRkYGhYWFZGRkMDw8HFIJkthZgquoxcKzZMkSLrvsMiwWC16vV7p3ofbPZDKRnZ1N\nRESEJFIS0Ol0ko9l0aJFtLW1MTw8LD2RqcZh3rx5/PSnP8VkMtHR0cHRo0cl72VmZqZkA3vllVek\npvl0EUrU8QBwLod6+yTv+Qnwk2n3agK8Xi9lZWWkpKTQ09PD8uXLyczMRK/Xh1W+HtQ/SdJqt9vx\neDzStVu1ahV5eXmy5ktw0U8GMani4uKoqamhrq6OJ554gkBgjKzmpptuIioqCp/Px9q1a6mrq6Os\nrOy8k0EYrs/n48iRI/T09HziITudTrq7u2lra5M0B+J9oRqaTqcjJSUFl8tFc3MzFouFvLw80tPT\nJc+/RqMJaSETLL9ut1vuRhEREdx0003YbDbUajUjIyOUlpaOK9eZbPEKBAKkpaXJs6p4j3CvVSoV\nRqMRq9XKvHnziI2NpbW1VS4OU+GBBx4gKSlJEigtW7aM7u5uFixYwLXXXivPltXV1ezfv39GlQGz\nMjNE+PDBF9JNTU2Mjo6Sn5/PrbfeSmJiIoqiSPq1cHY1g8HA/fffj81m44UXXqCmpobbb79dhvyt\nVisGgwGv18vIyMi4autzQaPRYLFYyMjI4MMPP8ThcLBkyRLuvvtuNm7cOG6SXHfddURHR3PPPffg\ncDjOS2Xn9/s5ePDgeWmpBTWAcJdE+6Gc/wC5U+zbtw9FUWhtbaWoqAiv10t5eTnp6elkZGRgMBjk\neWuqXU2wbwmDd7lcbN26FZVKxSWXXCKDDKEkF4hrguzsbBlMmjt3Lk6nE7vdLl/jdDrp6elhzpw5\ncqELBYJ2cHh4GJ1OR3V1NUNDQyQnJ2O32/nTn/7Ehg0bZOR3pso6s9LQRHhbQKVScemll7J69WqW\nL19ObGysXMH1ej0RERGS1iAUmM1mli5dSk5ODn19ffT39/PFL36RoaEhuru7iYmJwWg0Ul9fT3d3\n95SrupgUYvLk5eWRmJjI6tWrMZlM40LqbW1tHD16dMoSFJ/Px+DgoDzrTKRTi42N5YYbbuDSSy8d\nVwU+2WQQfRQGGhcXR1tbGwaDQVJgnzlzBpVKJclpwkHw54t/7927l9zcXEwmE++9954Ukwjl4lso\nxYjIX2trq/yuIgji9Xrp7e2VbbpcrpCMIhAIsHnzZqqqqvB6vTzxxBP09fXJo0VycrK8aywtLZ2x\n2MWsMzS1Wk1KSgper1f6+8nJyTzzzDOYTCYCgQCNjY0oikJTUxNtbW1YLBaZDRDKqtPb28vjjz/O\nU089xZ133ilrxdra2iTnfkdHB6+++qrkIZxsoNVqNUNDQ5SXl9Pa2srixYv50pe+xMDAAHa7HafT\nKcPyW7Zs4ejRo3ISn8/YJp4ddTqdfPhms5kXXniBefPm4fP56O3tDSloERERQVxcHBaLhdjYWFQq\nFU6nk+joaCwWC6+99ho9PT3o9Xp+9atfSQmq4BSnyVy9iVAUhdzcXKKiovif//kfdu7cycDAQFhn\nyL6+PsrLy6mtrZUhfeFZiCyRNWvW0Nrayt69eyW78lS7u9/v55VXXpER6+BztmBrfvnll3n22WdD\n5nmZDLPS0JKTkzGbzdJdXL58ucy78/v9tLa20t3dTVdXF3a7XZ4L4M/kLJNhdHSUHTt2YLfbSUpK\nkgGMM2fO8Otf/xq9Xk91dTVtbW3yYH++hyZ+J2je+vv7qamp4Y033uDAgQOUlZWhUqmIjo7GaDRS\nXl6O0+kMK3tB8L93dHQQHR2N1WolIyNDGplobyqYTCYZ7ImLi6Onp4eCggJ0Oh0tLS04HA5cLpf8\nW6vVjrufDMd1Etkwa9aswWw2U1paOmkAaCLEGVVcfAtKuODUvKioKAoKCsjJyaG8vJwDBw5gt9vD\nGlfxWrGDZmZmSkmwX/3qV5JcaKaYdYYWvG3bbDb8fj8JCQk4HA70ej19fX0899xzdHR00N/fz+Dg\noOTJD2fyOhwONm3axFe/+lWys7N5/vnneeutt2hoaJDMxMFno8naFRNgeHgYtVpNU1MTdXV1Utww\nIiJC0pmHK8YR/PmC6cnlcklujB07doQlxmGz2cjMzGT58uUMDAxgMBhoamrizJkz8v4rODIrGMJE\nYCeUIIMQ98vLy5OaBCJqF+rzEZHMjo4OBgcHpXikWq1Gq9Wi0WjIzc2lsLCQQCDA+++/T01NjRzf\ncAwaxo4rYiGKioqiqamJs2fPhp0Icd7PmelF3AXpxIQL6+zs7HGl9MPDw3i9XineEHxuEQM1Uess\njM8+r5GGey81WX2UeJBpaWlyN55uf7VardQecDgcnD17NqT3Go1G4uPjycjI4N5778VisfCHP/xh\nXIaMQHBCt+hnKH0V0ca0tDRJiXfgwAFaW1tlG8GRw8mo8YRxGY1GzGYzarUajUZDXFycdB/Fhbpg\nGhZ/RL+n6qv4DMHtKM6q/f39ISWpBz7LVAZarVb+O1gs4jzvnfGt/acBYSDnq1MLB2I1F/yLBw8e\nDDlJV6/Xy5SmkZEReXk+0zEMXmRENUNUVBTDw8MMDQ2Ni9hOtrgFQ2R5iGCTWFyD7/ZEhHrimIaz\nMCjKGD24iAEMDQ3J9qbCZ9rQ/pYxk4VBTAqtVsv8+fOJjIzE4XBw5syZcZn8f20En6MulDRtKJ8p\n8GnO6YuG9jeI4POEwWBAURTcbve0z31/KXzakz7Yxf20cdHQLuIiPgWEamgXWbAu4oIiONAR/LPg\nv8/3vr9lzLrw/kV8djDxvBlsLMLgJhqZCNuLfwvMBs/qL4nPnKH9Nf3xixiPcxmZoEWY+PtgBBvh\ndK44LiQ+rfPkZ+aMFh0dTUJCAjExMXR2dkoRQSFfKzKrZ/p91Go1JpMJs9mMy+WSBYXTrUeaaZRR\nhLCFMCDA4ODguFIQEeXTarVSLjYcqaWJOF861WS/E3/EvZQIwU+kTRDV4+J34s9UPC2ibbPZzHe+\n8x2WLVvGj3/8Y06cODHtYJC4lxO5rKH0YyJCPaN9JnY0lUpFbm4uS5cuZXBwUArbGY1GqfoyXY54\n8bfBYCA1NZVNmzaRn5+Px+PhZz/7GUePHmVgYGDKNKyJEELkKpWK2traaYfeRaqR1WqlqKiIwcFB\nHA4HPT090shEhnl0dDSBQGCcguVk7QrjDG4neLKJdLaJuYPnuthXFEXWh0VERKDRaDAajeh0Otxu\nN06nE7PZTGJiolT26ejokHdsUy1IOp0Ok8nE/Pnz+cY3vkFsbCydnZ1897vflWMR7rjGxMSQlJSE\nyWSiu7tb3in+Ja5JZr2hKYpCdnY2zz33HC6Xi82bN+P3+4mKimLBggUMDAxQXl4+rQvghIQELrnk\nEpYtW4bVamVwcJC5c+eSnp6OVquVCcFT7WYiK97v96PRaLBarXzrW9/6/+2de3DT15XHP/cnS7Ll\nhyxZMjYx+AGuaQiQNSQLLUk6kCVLX9BONn1MwzbJZLoNO2W7TWeys39spsOkk81sJs0MCdlt02bJ\n1mShbNfjkoESCM0OGzAYY2OMwW87flu1JNvYsq27f0j3RnZsLAF+NKvvzG/080/y7x5d3fO75557\nzvewe/durl27xhNPPKFJbqItGB+Z7p+VlYXVauXy5ct4PB58Pp8OkcrIyCA1NZXBwUFyc3MxmUy0\ntLTQ3t7+CbkV5Zt6sKiMdafTCYR4WVRNuMTERJ0p3tPTg8fj+URA8HRrskAgwMDAgC60/tnPfpau\nri5aW1ux2WyaZctmszE0NMSxY8eiSgZVqTrNzc3U1tbicDjo6+vjM5/5DBcvXoyaj9MwDFwuF1u2\nbOGZZ55hYmKCmpoa9u3bh8Ph0N/fMAyWLVuGxWKhvr5es1/NOTnPQsFsNvP444/jdrvp7u7m/Pnz\n+Hw+kpOTeeCBB4AQZdqlS5diuq8QgqKiIu6//35sNhsvvfQSg4ODnDt3ju985zs4HA4d9zgbIhf4\nhmGQlZXF1q1bMQxD52ipuE2VlqFM3pvVvVYmmN/vx+v1YjKZdOpGYWEhX/3qVykoKKC0tJSmpibM\nZrOOT5zpOyvlUFH8LpeL1NRUAoEALpeLxMREhoaGGBkZ0crm9/unnSEjZzqVFa5mtsgHis/no7u7\nW2c55OTkkJqaCqAtkmj6eHx8nJ6eHt544w2Ki4sxDIPi4mKklFHTWQghdIqRy+WioaGBM2fOaJoI\nla2wdOlSzfv59ttv66VKtGxrU7HoFW39+vU8/fTTJCYmcubMGerq6jQJ6caNG8nIyLglRTMMg8ce\newy73c6RI0fo6urSZtfAwADV1dUxUdgpmM1mvvzlL5OVlUVdXR0///nP8fv9rF69GpfLBUB7e7vO\nm1Lm2nSIXH8lJyeTlZXFxMQEa9as4YUXXtCm8zvvvENnZyddXV1kZWVNm4oSaSabTCYcDgd33XUX\ndrsdv99PQkKCTvRUWeJqzevz+TSJ6EwzmpJXHcnJybjdbsbHxxkeHmZkZASTyUR/fz83btzQaTpq\nnRQNIrMknE4n2dnZrF27lrVr11JeXh7VulRF1oyMjHDlyhUOHDjABx98wPDwsI7TdLlcPPzww+zc\nuZOOjg4+/PBDXZJ5ZGRk7nkd5xtCCE6dOoXFYqGyspJXX30Vr9eLzWZj3bp15OXl6UEQ632XLl3K\nY489RkdHB++++y45OTksX76c733ve5w6dYqjR49G3aGRg+/ZZ59lz549GIbB17/+dZqbm3nyySfZ\nunWrzrUrKyujtrYWmMzEOxNcLhcPPfQQ3/rWt1ixYgVpaWkIIRgdHeWNN97g/fff10rp8/mAT8aG\nquh7+Jh4ZmRkhAsXLmAymSbxRdbV1enUnr6+Pnp6eqalcVNtTu3bjIwM1q1bR2FhIb/73e80Y7Pi\nvlRmq9Pp1AQ4KtNhNgSDQfLz8ykoKNDtp6amRs1+FQwGaWxs5Cc/+QldXV2TWIiFEOzatYunnnqK\nlStXMjY2xqVLl6ioqCAQCNxyoXtY5IqmCHQg9KOqJ2RmZiYbN27EMAw8Ho82zyA6L59hGBQVFenU\nlXXr1iGlpKCgAID6+np8Pt8tRe9v376dpKQkgsEgK1euJD8/n29/+9vaWxoIBDTVtEpHmQ6R7aoK\nnC6XSydhBgIBTp06xf79+yd99mZriKmfU2vLxMRETVfn8XgIBoOkpqaSlZVFeXm5Xh9N932n/m0Y\nBsuXL6egoEBzkUSakUIIsrKycLvdmtd/tprTU9HV1UVFRQVLlizB6/Vy4cKFqL2sUoZY0Dwezyce\nHsnJyfz4xz9myZIlmM1mSktL2b9/Pz6fT8+6n7o1mmEYbN26Vf+YVquVvXv30tHRgdvtZvXq1Xi9\nXg4dOkR1dTVpaWmYTCZu3Lgx68LYZDLR29vLz372Mw4fPkxHRwderxfDMPQAUJ+LZctACEFhYaF+\nOJSUlAChDISqqioOHDiAx+PB4XBMokeY7f5tbW2UlZXh8XjIyMggLS2N4eFhurq6KCoqoqOjQ6/7\nZvIMAnqRHwgEaGlpweVysWrVKgoLC1m2bBkffPABFouFoqIifvGLX9DY2MjJkyejmtlVOktOTg7f\n/e53mZiYoKSkhImJCd2PygS+7777yM3NncTpHy0Mw6C/vx+3201vby/V1dWcP38+prrgaj0JH285\n/OAHP+CJJ55g6dKlDA4O0tjYyE9/+lOam5u1eZuenq6p8mLFolU0VcRCDZhDhw7R1tZGQkIC27Zt\nY3x8nKNHj1JZWYnX6yU7O5vU1FRqampmvffExAQdHR28+OKLOr8NQp3u9XpJSkoiJSVFJ1pGCykl\nvb29pKSkTCrm3t/fz5tvvklpaSn5+fm43W49q83GAAzQ29uLx+Ohs7MTu91OSkoKu3fvZvXq1dx9\n992MjIxQVVWlyX5utuZTs6jKyrZYLAghaGhooKKighs3bnDPPfewYsWKT3C3zPbdHQ4HRUVF2tP4\n+c9/noGBAa3YartA1Q5ISUmJab0jhMDtdvPSSy9pirxgMKiz2mN5IKoZ3Ww2Y7fb2bZtG3a7naqq\nKpqamqitrWV8fJzU1FTtrImWBGk6LFpFi6wjNjo6SklJCR6PR9PLXb9+nZMnT+L1erFYLBQWFtLa\n2hq1rT46Ojotw5Qyf1SnxtKhUkrKysp45JFHyMvLIykpCYBXXnmF0tJSBgYG9DolclN3tj5QTpnR\n0VEsFgu5ublkZGSQmZmJ2+3mK1/5iqamu1kWc2Sy5ejoKGNjYwwPD9PW1sbY2BgjIyNYrVZcLhdW\nq3VSoY6Zvm+k+eh2u9myZQvp6em6Yk1qairNzc28/fbb+nsr5aisrNT9EU0/Z2RkcOjQIV2Ao7+/\nH6fTyfbt23n//fdjKrmlvMMulwuXy4XP5+PEiRP8+te/1o4ctS5TnJTTrUmjxaJVtEAgwG9/+1t+\n9KMfMTY2xoYNG7h69SotLS0cO3aMNWvWUFBQoBetg4ODdHd3R+UYkVJiNpspLCykvb1dp8o7HA6+\n8IUvMDAwEDOFncLzzz/PxYsXee6558jLy6OxsZGXX36Z8fFxTCaTLpoQSREwFUrZ7XY7VqtVMwaP\nj48zMjKCz+ejra2Nnp4e/H4/FRUVNDc3z0oLF3ldfbdAIKCJgtQTPjc3F6/XS1lZWUwmGcD58+dp\naGigvb2dpqYmvY5Ws6fNZqO2tpaWlhbee+89HWww2yyRkJDAzp07yc3N5erVq7zzzjucOHGCL33p\nSxQVFZGenh7VHqXKk7PZbKxfv57Nmzfr7Z36+nry8vL4/ve/z7Jlyzh+/DhDQ0P6t7qd3LpFq2jB\nYJCOjg5aW1vJzs7mhz/8IYcPH+b48eM4nU527txJQUEBvb29XL9+nYMHD+r9ntmgOjolJQXDMBgf\nHycpKYkHHniAhx9+mLNnz3LmzJlbkntsbAy73U5aWhr9/f288sork4okBAIBXUhiJieAlFJXd7FY\nLDpiQcmdnp7O4OAgzc3NVFdXU15eHjMnhxrYkUmaqjZaWloa5eXlHDlyJJpUfn2/vr4+6uvr8fv9\ndHZ2as5EQEeMLF++nAsXLtDc3Kx5T6KZKYLBIKdPn+Zzn/scpaWllJeX43Q66e7u1izG0Zh06n21\nf9fe3s6qVatoampiaGiIJ598kk2bNuH3+/H7/QwODuqghUjHXKxYtIqm9rRee+01du3aRU5Ojl6P\nOBwOHnzwQe2VvHLlCp2dnVFnGSvGI6vVqjeG16xZw6OPPgpAZWWldpPfitz19fW0tLRw7do1zp07\nN2kwjo2N6RCpmaAGXU5ODpmZmbS2tjI4OIjZbCY7O5uVK1fS29tLRUUFFRUVdHd3R82EFTmo1Z6S\nqu55zz33kJ2dTTAYZN++fVRVVd30XlMHtjLn+vr6dGiVcpKoUCeHw0FLSwstLS2TCmhEoyB9fX2U\nlJRMIju12+00NTVFXYxDtTM6OkpdXR1dXV2cPXtWby9s2rQJi8XC0NDQJAoG1We3Oqv9SQQVq2gD\nxb947733smfPHjIzM3nrrbc4ffo0ra2tUQ00NbgSExNZtmyZJgvdu3cvaWlpPPTQQ3z00Ue37Ma1\nWq243W4KCwtpaGjA4/FoDnun08ny5cvp7e3VvPwzyaiCm4uKitiyZQsulwu/368Ha1lZGTU1NfT0\n9EzaWJ8tvjHyXIgQd8iGDRvYvHkz3d3d1NTUUF9frx0NsyEyal9VjVF05aqslMPhIC8vj4GBAVpb\nW+nq6sLr9epZJVrnglLa4uJiCgsLefrpp+no6ODo0aP88pe/jPk3U+NJndtsNn71q1/h9Xp54YUX\nJrEezxRUfceCioUQicAfAGv484ellP8khMgHDgIZhMrtPi6lDAghrIRqXq8H+oFvSCmboxFmJihH\ngEJVVRWvv/469913H2fPntUkp9EgMtI8MzOTtWvXsmPHDiwWC1evXr2tipwQeuJ5vV7q6uqQUmK3\n2/UMarFYtAPmZoMr0gXd2NiIzWbDbrdz48YN7HY7PT09XL58WZPIxLoFEWkyquqnKSkpHD9+nCtX\nrmjG3mjuFSnz2NgYKSkpOJ1OXZEmPz8fwzDo6emhv7+fQCCA1+vVGRGxOBeCwSDDw8P88Y9/xGKx\n0NbWxsmTJzl9+vQtPRgj/0ftr7322msMDg5O2pu9E4imhrUAkqWUgyJUJ+1/gD3A3wNHpJQHhRD7\ngUtSyteFEM8Aa6WUfyOE+CbwNSnlN2ZpI+aRrWjBbifSWs0cZrNZR0rESoM9HSIpzNQAnPqj3oqs\nd8r6UEqmIlWSkpKwWq260ul0s2O02QuRWQGJiYkkJSVp1umpYVw3S71ZCAghdOEURW04G6Kd0SbF\np812ADagAvhzoA9ICF/fBBwLnx8DNoXPE8KfE7PcV8aP+T+EENJsNsukpCRps9mkYRiT3ov1XtNd\nMwxDGobxifeFEPpa5PlCHyaTKSZZotWdqDadhBAmEaqN1gP8HmgABqSUamUYWaf6LqCNkBTjgJeQ\neRnHbeBW929mu5+qmKM8oJER/tG0OV0Ylnqd5oE66f7KhI3F9J1r3AmOy+kQlddRhgoJ3iuESAf+\nC1h1uw2LWWpYxzEZd/rHj7zf7dx7qpk50+tMbS0WBZtrxOTel1IOCCFOETIV04UQCeFZK7JOtaph\n3S6ESADshJwiU+8VWcO6FxgiZGYuFriIy3MzxOWB3Gg/GI3X0Q2MhZUsCfgL4EXgFPAoIc/jXwP/\nHf6X0vDf/xt+/6Sc5bElpXQLIc5LKTdEK/hcIy7PzRGXJzZEM6NlA28JIUyEeCD/U0pZJoS4AhwU\nQuwFLhIqKE/49YAQoh7wAN+cA7njiONPCtHUsK4C/mya643A/dNcHwH+6o5IF0ccnxIsJqbif11o\nAaYgLs/NEZcnBiyKEKw44vi0YzHNaHHE8anFgiuaEOIvhRB1Qoh6IcRzCyRDsxCiWghRKYQ4H77m\nFEL8XghxPfzqmMP23xRC9AghLkdcm7Z9EcKr4f6qEkIUz5M8zwshPgr3UaUQ4osR7/1DWJ46IcQj\ncyDPMiHEKSHEFSFEjRBiT/j6gvVRzIglBOtOH4CJUJRJAWABLgF3L4AczYBryrV/Bp4Lnz8HvDiH\n7T8IFAOXZ2sf+CLwLiCAjcDZeZLneeDZaT57d/h3swL54d/TdIflyQaKw+epwLVwuwvWR7EeCz2j\n3Q/USykbpZQBQntyOxZYJoUdwFvh87eAnXPVkJTyD4S2QqJpfwfw7zKEDwkFDmTPgzwzYQdwUEo5\nKqVsAuqZxht9m/J0Sikrwud+oJZQqN+C9VGsWGhF03GRYUTGTM4nJHBcCHEhHBoGsERK2Rk+7wKW\nzLNMM7W/kH32t2FT7M0IU3pe5RFC5BHabjrL4uyjabHQirZYsFlKWQxsB3YLIR6MfFOG7JEFc88u\ndPthvA6sAO4FOoF/mW8BhBApwG+Av5NSTkqBXyR9NCMWWtFUXKRCZMzkvEFK+VH4tYdQ0PT9QLcy\nN8KvPfMs1kztL0ifSSm7pZQTUsog8G98bB7OizzhXMjfAP8hpTwSvryo+uhmWGhFKwcKhRD5QggL\noXCt0vkUQAiRLIRIVefANuAyH8dswuRYzvnCTO2XArvCnrWNgDfCfJozTFnjfI1QHyl5vimEsIpQ\n1n0hcO4Oty0IhfbVSilfjnhrUfXRTbHQ3hhCHqJrhLxV/7gA7RcQ8ppdAmqUDIRy6N4DrgMnAOcc\nyhincKYAAAB/SURBVFBCyBwbI7SeeGqm9gl50vaF+6sa2DBP8hwIt1dFaCBnR3z+H8Py1AHb50Ce\nzYTMwiqgMnx8cSH7KNYjHhkSRxzzgIU2HeOI4/8F4ooWRxzzgLiixRHHPCCuaHHEMQ+IK1occcwD\n4ooWRxzzgLiixRHHPCCuaHHEMQ/4P2ldGP/VbLO5AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_conditional_generation(model_G, n=8, fix_number=None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "kZ4vuiv-D1Sh"
   },
   "source": [
    "It does not look like our original idea is working...\n",
    "\n",
    "What is happening is that our network is not using the categorical variable. We can track the [normalized mutual information](http://scikit-learn.org/stable/modules/generated/sklearn.metrics.normalized_mutual_info_score.html) between the true labels and the labels 'predicted' by our network (just by taking the category with maximal probability). \n",
    "\n",
    "Change your training loop to return the normalized mutual information (NMI) for each epoch. Plot the curve to check that the NMI is actually decreasing."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "miS30SzyD1Sh"
   },
   "source": [
    "This problem is explained in this [paper](https://arxiv.org/abs/1804.03599) and a solution is proposed in Section 5.\n",
    "\n",
    "In order to force our network to use the categorical variable, we will change the loss according to this [paper](https://arxiv.org/abs/1804.00104), Section 3 equation (7).\n",
    "\n",
    "Implement this change in the training loop and plot the new NMI curve. For $\\beta = 20, C_z=100, C_c=100$, you should see that NMI increases."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "FU7nAfnpD1Si"
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import normalized_mutual_info_score\n",
    "\n",
    "def train_G_modified_loss(model, data_loader, num_epochs, beta=1 , C_z_fin=0, C_c_fin=0, verbose=True):\n",
    "    nmi_scores = []\n",
    "    model.train(True)\n",
    "    NMI_history = []\n",
    "    for epoch in range(num_epochs):\n",
    "        \n",
    "        C_z = C_z_fin * epoch/num_epochs\n",
    "        C_c = C_c_fin * epoch/num_epochs\n",
    "        \n",
    "        for i, (x, labels) in enumerate(data_loader):\n",
    "            # Forward pass\n",
    "            x = x.to(device).view(-1, image_size)\n",
    "            x_reconst, mu, log_var, log_p = model(x)\n",
    "            p = torch.exp(log_p)\n",
    "            \n",
    "            reconst_loss = F.binary_cross_entropy(x_reconst, x, reduction='sum')\n",
    "            kl_div = - 0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp())\n",
    "            p_uniform = 1/n_classes * torch.ones_like(p)\n",
    "            entropy = torch.sum(p * torch.log(p / p_uniform))\n",
    "            NMI = normalized_mutual_info_score(labels.cpu().numpy(), p.cpu().max(1)[1].numpy())\n",
    "            NMI_history.append(NMI)\n",
    "            \n",
    "            # Backprop and optimize\n",
    "            loss = reconst_loss + beta * ( abs(kl_div - C_z) + abs(entropy - C_c) )\n",
    "            optimizer.zero_grad()\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "            \n",
    "            if verbose:\n",
    "                if (i+1) % 100 == 0:\n",
    "                    print (\"Epoch[{}/{}], Step [{}/{}], Reconst Loss: {:.4f}, KL Div: {:.4f}, Entropy: {:.4f}\" \n",
    "                           .format(epoch+1, num_epochs, i+1, len(data_loader), reconst_loss.item()/batch_size,\n",
    "                                   kl_div.item()/batch_size, entropy.item()/batch_size))\n",
    "                    print('NMI : ',NMI)\n",
    "            \n",
    "    return NMI_history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 572
    },
    "colab_type": "code",
    "id": "nzIoxt2BD1Sm",
    "outputId": "9bbdf950-f9c4-46a1-aaa7-0ecc2268d887"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch[1/2], Step [100/469], Reconst Loss: 201.9451, KL Div: 0.0332, Entropy: 0.0002\n",
      "NMI :  0.2570150438136569\n",
      "Epoch[1/2], Step [200/469], Reconst Loss: 203.5479, KL Div: 0.0728, Entropy: 0.0001\n",
      "NMI :  0.33144486358723974\n",
      "Epoch[1/2], Step [300/469], Reconst Loss: 205.9178, KL Div: 0.1307, Entropy: 0.0003\n",
      "NMI :  0.2771720065696548\n",
      "Epoch[1/2], Step [400/469], Reconst Loss: 208.1936, KL Div: 0.1690, Entropy: 0.0004\n",
      "NMI :  0.2672059785356109\n",
      "Epoch[2/2], Step [100/469], Reconst Loss: 195.8153, KL Div: 0.7796, Entropy: 0.7455\n",
      "NMI :  0.32400539634779796\n",
      "Epoch[2/2], Step [200/469], Reconst Loss: 192.7484, KL Div: 0.8504, Entropy: 0.7914\n",
      "NMI :  0.28506567118094617\n",
      "Epoch[2/2], Step [300/469], Reconst Loss: 189.2575, KL Div: 0.9584, Entropy: 0.7946\n",
      "NMI :  0.2366437546383525\n",
      "Epoch[2/2], Step [400/469], Reconst Loss: 183.7780, KL Div: 0.7131, Entropy: 0.7163\n",
      "NMI :  0.3194332340508588\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'NMI')"
      ]
     },
     "execution_count": 19,
     "metadata": {
      "tags": []
     },
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nIQiCIATy/wG4KCo9+NrzFQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore') \n",
    "\n",
    "# Hyper-parameters\n",
    "num_epochs = 2\n",
    "learning_rate = 1e-3\n",
    "beta = 20\n",
    "C_z_fin=200\n",
    "C_c_fin=200\n",
    "\n",
    "model_G = VAE_Gumbel(z_dim = z_dim).to(device)\n",
    "optimizer = torch.optim.Adam(model_G.parameters(), lr=learning_rate)\n",
    "\n",
    "NMI = train_G_modified_loss(model_G, data_loader, num_epochs=num_epochs, beta=beta, C_z_fin=C_z_fin, C_c_fin=C_c_fin)\n",
    "plt.plot(NMI)\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('NMI')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 118
    },
    "colab_type": "code",
    "id": "32IgAlIeaPP3",
    "outputId": "630bd25e-f6b3-425d-89d0-bddfff74e8b2"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_reconstruction(model_G)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 269
    },
    "colab_type": "code",
    "id": "8DaqzgAhD1Sq",
    "outputId": "c49180fc-a742-4cd1-d4f6-7bf8724a6dca"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_conditional_generation(model_G, fix_number=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 96
    },
    "colab_type": "code",
    "id": "GFiczWhmD1Ss",
    "outputId": "6fec636f-d671-44c6-e7a0-7f3d3596022f"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAABPCAYAAAD7qT6JAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJztXUuMZEl1PZGZL///+nZX98x0QwMa\nL/gYISQjy5ZlG9iMvUGwsFkgzQYkI7EwNhsvvTGWLdlIY4EACxlbAgsWlvxBtiwvjAFrBpgZephu\ndw9VlfXJ6qzMl9+Xn/Di5b1142XWdFXmy6ya6jhSKX+V+e67EXHj3hM3biitNSwsLCws3vqIXLQA\nFhYWFhbhwBp0CwsLiysCa9AtLCwsrgisQbewsLC4IrAG3cLCwuKKwBp0CwsLiyuCuQy6UurDSqm7\nSqnXlVKfD0soCwsLC4vzQ82ah66UigJ4DcBvAtgG8AMAn9BavxKeeBYWFhYWZ8U8HvoHALyutb6v\ntfYAfBPAc+GIZWFhYWFxXsxj0LcA/EK83h6/Z2FhYWFxAYgt+gJKqecBPD9++cuLvp6FhYXFFURV\na732uH+ax6DvALgpXt8Yv2dAa/0CgBcAQCllC8dYWFhYnB8Pz/JP81AuPwBwRyl1SykVB/BxAN+d\n4/csLCwsLObAzB661nqglPoMgH8GEAXwFa31y6FJZmFhYWFxLsyctjjTxSzlYmFhYTELfqS1fv/j\n/mnhi6KLhlKKn1/G2u5SPvl82ntaa76HRd4LXVMpxX9BWUaj0anfJzkvo76XjWD70utIJIJIJGJ8\nJvVF+h2NRtBav6m+lwmS86LHlbx+JBIxXkejUZZJKcW6Gw6HF9Ivg33gtOsvQ663jEGXA0UpZQwW\nUhQNjuD7S45CDAMZi8UQi/lqjsViRocLDpp+v4/BYADgpHMuQrZoNArA12U0GjVeS8Min0ujMxgM\nJiafy2DcSZ/LkiUSiXDbkh4TiQQAIJVK8WfUL2V79/t9AECr1YLnefw62IfDRNDw0BiSfRaAISu1\nO7X9InUrx7Tsk47jIB6PAwDi8TgGgwEcxwHg64vGTLfbhed5GA6H/NkiENQXjSNg0ikLTuKL7puX\n2qCT0qLRqGEUc7kcNygpEvAV2G63eXAMBgP0+31uYDJEi5BTyppMJgEAyWQShUIBq6urAIBEImEY\nzVwuh0ePHgHwB3ar1cLR0REAoNlsstzzGkw5cKPRKOsukUjAcRxkMhkAQDabNTpqr9fj551Oh197\nngfP89DtdgFgKYOd5J8W5dBndP1IJDLVGw5LBrpGLBYzDHgul0OpVAIArK6uIp1OA/CNt9aa+0W7\n3YbrugAA13Wxu7uLRqPB/7uoyZzGSiwWQyaTQSqVAgCk02n+rN/vIxqNsnzD4RCDwQDNZtO4FyDc\n9pZtG4vFWB7Sa6FQAOCPKa019+lerwfP8wCAxw/1S+m9hyUryUnXpwmH2lYabdIVTThBeRYxXmxx\nLgsLC4srgkvroRNdAQCO47C3k8/nkUqlcPOmnwJfKpV4Nq/ValBKoV6vAwD29vbQ6/VQq9UA+F6m\n9HrDklN6P/F4nD2fjY0N3L59G+94xzsAnHhCJEMikcC9e/cAAPv7+9je3kar1QJwEl3Q8/N6bZL2\nIW+CvHPy0LPZLDKZDK5duwbAjxgkTaCUYu/i4OCAo4d2u43RaDQRHS3CUw96xHTNIO027Tsku+d5\nhlc5q8cejMQcx2EPPZ/Po1AosC5v376NXC4HwPdyo9Eoe467u7vcBu12myMlkk8pFQptEOT0yYvM\nZrNYX1/H7du3AQBrayf7VcijJI98f38flUqFPydag2QjOedBcC0nFouxrNQ/r1+/DgA8fqT+qtUq\ny0MePODrncbQvFFPkPIlCiidTqNcLhseepACarfbAGCwBcPhcEKmMMbNpTToSinD8OTzeWSzWQDA\njRs3kE6nmSaIxWJs7J966ikMBgP84hd+RYJoNIparcad0/O8iQEyR3EyfqSwC/AHS7lcBgBcu3YN\nq6ur3IjJZBKO46DT6QDwG7hYLALwO2Y2m2WD7nmecQ2t9bkGj+yAMtROJpM84ayurmJlZYXD2Ww2\ny59ls1mjM0qMRiODqwzSBPN2TCk7GcxEIoFkMmkMdNIdGWkaSKPRCK7rsgFtt9v83PM8DAaDcxnK\naZNjJBIxJu9UKmX0U60198tIJIJ+v29QbdQnHcdBLBZjAyEXS+fBNEeDDHe5XMaNGzdw48YNAL7j\nQfeVTqdxcHDAfbTb7aLVahm0AU363W537gmSHuUYSiQSTF1dv34dW1tb3NapVAqNRoMNdb/f54mz\n2WzCcRyjXwYXn+eRDwCvk6ysrAAACoUCNjc3uR90u13Wued5aDQa2N/fZ/lIr0S5hO0EWcrFwsLC\n4orgUnnoQc9sfX0dgD9jU8iVTCaRyWR4hlZKsSc0Go2Qy+XwzDPPAPBnvV6vx15er9djTyOsRYlg\nJgst4tB9dLtd9iopNJTXpfugBTZJI8zqXQQzbWT0kM1m2VPL5XIoFosc7aTTaZY9m81iNBoZuiXZ\nKNSWlBBdix7PKm8wWyAWixlRAnlCxWIRpVKJZZf3EY/H0W63mQrwPA/NZhM/+9nPAAD37t2bCHVn\nBckb9KxTqRSi0SjraDAYMPWXTCa5f9B9Up/QWiMajRp9X+ruPLqU8lG/pLZPp9McPaysrBgRcLfb\n5XZvt9tIp9P8O0TLEd1Gi6TA/FkbwaQHavdyuYynnnoKALC1tYWtrS3WayKRQCwWYxo1mUxyu6dS\nKTiOY3jv01JyzwI5DuPxOLdfJpNBuVzmCOLmzZtYWVlhGzMajVjP3W4XzWaTGYM33niD9ei6rtEP\nz9vOp+HSGnS5clwqlYyG2d3dZWPnOA4rIpfLIR6Ps4Gq1+t49OiRMZjOmjN6Xkg+mTp8v99Hq9Xi\nhqNBRPIkk0nOHIlEIhMpV2HwqDKrhagqGrz5fB79fp/DQJnCqJRCLpfjNkilUmy8aADS6+FwOFNq\nG4WykhbY3NxkHnpjY4Mn57W1Nayvr/O91Ot1/h7dFw3sXq+HBw8e8KB/8OAB6zysjCHi8+k1/SbJ\n0O/32bBQZpPMfqDP6B5OWxuYhxKUGVeZTMaYnNPpNLf7zs4OZ2LF43FEIhGm2tLpNK/hBGWf15hL\nXTqOw4ZwfX2dDWapVMJgMOA+SymeJINcH6F1HUmLyQyv88gmqaVEIsG0ZKlUwsrKCra2/MKy165d\nQ7lcZkqv1WoZk2G5XDZ0R1Rbq9UyJm9aO5nXHl0qgy4xGAzYMHY6HeaW4/G4we0Wi0UcHh4C8Gfz\nRCLBMz11YpnORpApRPMiyIVJD6HT6fBg7XQ6Rn6yUooNeq/XM4xrr9ebiU8NplVNyzun3+t2u4jF\nYqzLXC7HsmcyGSPlSnq2QX0GjdpZQYNPej+rq6u4desWAODOnTvsqZXLZXQ6nakLna7rolgs8qCj\niYjuK5FIsLccZi6wzNemBVLSbTwe50Eej8eNPQYyUgROJkTgxEOfVcZgDrR8TRNwNptFs9nkdhsO\nhzg+PmZZs9kst3WtVoPneTz+ZNpiGDw/PUpHrFQqsUGPRCLM6wN+W1arVe4zUjbqoyRXLBabyymS\nufh0z8lkErlcDk8//TQAn0P3PM9IzMjn8/wblMQB+HqnSfXo6Ghin0cY/dJy6BYWFhZXBJfKQw9u\nBqHwpNPp8Ow9GAzQ6/UMGkVmGniex//b6XQwGo04TJde0byz4Wme0Gg0Yk+I+H4KeyltkuSNRqP8\nv8fHx2g2m+xVSq5yltlbzv7kpVCWD9ECsVjM0I9MB5MhLQAjhbHb7RqZIuT1ziKjzG6gcJ/gOA6H\n2tVqFTs7O5wxsLe3x/dVKpVw584dIyzvdrvsdVarVSMddJ62lylx0tsP8sAyZKdoS/YZ8t5d10Wv\n15vY/BZG/xyNRsZaEz0H/ChGtifpJ5PJ8LoF4PcD13W5H0gPOMx1KKWUkdFEeuz1emi1WrwBj2hJ\nomei0agRyVO6Lf3vPPSQLCkgnyeTSb7Go0eP8OjRI+5rFAkCwK1bt5DL5YzvBvUY9iatS2XQCRTq\ny5CZQrDhcMhpYIDfiNQRiNLY29sD4HfU3d1dVrJsmDBlDYZklGK1ubmJSCTCg6VQKHAICfghGMl2\ndHRkpNpJw3Memek7MlyUtEm73TZ2spLuAJ/Xo4FClBd1wGazyYOq0+mg3W4zPXTeNMCgvHLyoF2M\n9Nn9+/cBANvb23jllVewu7sLwDc0FNpS+qAMe/f39/HGG28AABqNBt/HvAMnOMjJaNOCMum21+sx\nBUTGWqZRki5d10Wn05lqMOeFvFfHcZgn39zchNaa1xjS6TRPpKVSCblcjnVZr9fRbDanliYIY0GU\nntMOcMDn0Emvw+EQDx8+ZPk8z0MymTR2klI/7HQ66Ha7xmK9dIrOimBKYTB/nBZfAV8/e3t7RsID\nOWlKKSMVudvtMsUa1sQdhKVcLCwsLK4ILpWHLj1SmRZH6X/AST0U8uJyuRw2NzcB+N5FJpMxVu8b\njcZCak9IBFfEKUujVCphNBoZtVLkLjitNUcT5E0sstZDMPwMLmrKhUVKHSXP0XVdjphkiuA8stJm\nKfLW+v2+USOm1+uxfu7evcs7fwFz9/DGxgaKxSKH6Y1GA6+++ip7wWHRLMGsCcdx+JqJRAKJRILv\nJZlMTqR8kuzNZtOgsui3gclQfB7IBfFoNMrypFIpI6NC1nK5ceMGe8WA74H2er0JijEM2eSCciaT\n4SjccRzua7TbksZXPp9HsVhkj/nhw4dGXwROIqJ523xaejFRlOR106KxjNBpIf/WrVtYXV3lSEjW\nmVpU4bBLZdAJlD0gOVoKnShzhQwPpbMB/q6yer3O+cdENyy6NKls+Hg8zq/L5TJarZax5TqdTrPB\nosECnBQZWsTAkVkoMqTv9Xo8yQD+QKdBn06nUavVjIwdWYwrmFZ53jxfkkc+0pqCpCZkQbBCocC7\ncB3Hwbvf/W4AwNNPP41cLsf01f3797GzszNRPGxWBHPl6VEaRVncCvAnR7k93HXdiTKv8rlsa1nA\nbZ60RQDGHgTJUSulmLIqFouc0++6Lo6OjpgTpl2iYY0hqcvgZCPTOkl3e3t7iMfjTBetra1hMBhw\nZpss3BeJRAzdBsvungfBNgmWfCBnIZ1O81oZ4Dtxb3vb21hWmZEn+8uscj0Ol9KgA75C5XZb6cUB\nJwuh169f546ZyWRQqVT4e41Gw0h1AyYVGbYnRAMI8OuflEolNkL5fN74PLjYJHPZpZznlTG4uEyD\nkepISw+m3W7zYKF6JIA/MR0fH7O+afEOgLG4Bkxuhjkv5HdbrRbLS5woydbpdHjy3tjYwDvf+U4A\nwNvf/nZEIhG88sorAMA56GFP5MFaLtFolPvhcDhEq9XigZ1IJIyNPL1ej/Un5SKDJDdnhTXYZUqo\nNCbNZhPFYpHlk5uOkskkjo+PJyKHsA2Q3PCWTqeNOj2e57FXm8/nsbm5yX00k8nAdV1OY5ScOY1D\nknVWR4MQXIMAfEag1+uxXqhkBy0kl8tlNuilUgn7+/vch+kRmJxsworGLYduYWFhcUVwqT30aRwW\nFeMiTyiVSvHz/f19HBwccG3pTqdjVMQLbuYIA8Gt/0op9rrb7TZKpZKxe9B1XQ5na7Uay0S8pvSI\n5g236bkszgXACG0BMM2SyWTYiyC6irxKqS/yTuk9CnVlZs1ZIduZrkfeF3k/gO/xbm1tGVwqeW3J\nZBKj0YjD8L29vVND5ll0Oq3QGWXWSEqq1+txhpNMwaxWq2g0GtzWsugY1R+XHPo8CBaUot/NZrN8\n751OB1tbW0bZAvqe67pG9lMmkzEix3kR3O5Pz+VOZK01X59q9MudtJLWlKm28Xh8YtyEEaXJqJba\nmfoe0YTU7hsbG0yxep6H4+NjQ4bTKLuw8FiDrpS6CeDrADYAaAAvaK3/QilVBvD3AJ4B8ADAx7TW\ntbAEC4YjklOU/J80QpQPSgM7EolgMBgYHYcwD0cpw2Ia5NQB5e7PQqFg1HJpNBqo1+t8eABVhyPZ\nJB0TFqSsxIUSTRCPxzEajXiBp9FoGFxqr9fjyQc4mRAcxzH2AvT7fTbqs8hH8DwP1WqV9x/IgZJI\nJNDtdpkSWl9fN/Lrq9Uqtre3Ddll284zOUo6TfLQ8oCLdDrNf4CvK9kvm80m94t0Os2yU/gu0/Rk\nm80jt1yHajQarEvaKUoGFADn9x8fH6NSqUxUVwyTBqJH2Z8ikQgnM8jUX601UqkUT+xULTNIgQC+\nAyDLV4RVK0VrzU7ZwcEB4vE4j5n19XUj9bdQKBgle4fDIffnWdMoz4OzUC4DAJ/TWj8L4IMAPq2U\nehbA5wF8T2t9B8D3xq8tLCwsLC4Ij/XQtdYVAJXxc1cp9SqALQDPAfi18b99DcB/APjDMIWbll1A\nXhIl8mcyGaZc7t27h93dXZ752+224fUGQ0dZje0sM6YMZ6XXJuuzADCqOx4dHfFs7jiOsblALuBQ\nOib97mAwmGvRRMoafE6/RTtF5WIZLe40Gg1Uq1VjF6lsA8dx2Pubd+FJUkCNRoP1lUgkjDTFo6Mj\nPpSB3gP8xaZKpYKXXnoJgJ89FNZRabKt4/G4QU8lEgmjPgpFYoDv6cpNWt1ul/upUoozH8hTlX1C\n0lezykrfn3b8Im1go4XHo6Mj9oibzaaxkQgwK23K356lT8q+J711rTV7svl8nmUjOkjW4qlUKsaO\nXOoHlB0kNwGFgdFoZGSmycin1WohnU5zsa5UKsXPaacqye667qm7v8OiX87FoSulngHwXgDfB7Ax\nNvYAsAefkgkFZNgkryg7guS0ZFrQ0dER2u02K40quFFHSafT/HyWwS5pFupElOpHA1tWf6Q0RArX\ngqedaK35d2QxLrqWHDjnafDgRCizhSTfT4dGkJGSoWSz2eTyn3RfZCymDXCScRZIDn1amV6SrVQq\nsb6KxSKH6LVaDS+//DLTQ91uN7RzOYPUAOkql8tB65NzQqmKJk3mcu9Ep9MxDA8w2UayrcM4UYlo\nDMJwOORJI5lMGodWxONxpgFTqZSRM0/ptHLynkevssKiPOWnVqvx/g1ZHiORSEBrzX3PdV0+5ILu\nReb3U1kK+t2wsq/oN4kmJYeyWCzC8zyj7ARNRv1+3zgsRBZoC8oVFgVzZoOulMoC+BaAz2qtGwHv\nUSulpkqklHoewPPzCmphYWFh8eY4k0FXSjnwjfk3tNbfHr+9r5S6prWuKKWuATiY9l2t9QsAXhj/\nzptOQ8FNB+TtyKJHVJuYdoe6rmvsCEylUkb42u12jfMH5QaQ886K0tMlL5s2u9AMXSgU+LPBYIBE\nImGUfM1ms8aiDS3gtlotXlykawXLa84iq1LKqGmey+WM096JOiB5KDwMFuCSEYSkiqRsYXgZMhSV\nHrpSCuVymb24RCLBBwe4rou7d++yZxRmPRQ6ao6uSTRKJpNBKpXiRdp8Pm/QCPKwkn6/bxw92O12\n2cOkwlzynmfZVEbeufSAJUVEdc0BP2KQ9VrkARytVgtHR0e8SOq67qnynNdbl5QQvabry6MRZZ9c\nWVnhewB8aqvdbrO89XqdvWXaiTlt3MxLu0l4nsdRd6fTwdraGvcLKpUM+LRlt9s1zhQN64jB03CW\nLBcF4MsAXtVaf1F89F0AnwTwp+PH78wrTJBTklvSKasln89jbW3NKIBDoTalP1Fju65r1P8GTni1\nWRQaPE8SOKmPTNzz1taWkUETDHsdx+HvVioV7hitVsuoujcrZRDkNyn9kOA4Dusym83i+vXrxiq9\n3Mkm24AODyDZgmd4hllnXHL+slZ6qVRiA0qnEgHAa6+9hsPDQyPFMqydtpQpBZjpa3RGJ2UF5fN5\nozgX/T/g67zZbHI6pjythkodhF2ciyoWkqNx7do1g1qTm9xyuZyxq9Z1XaZgOp3OqesRs+hXpv/R\nBKeUMtYjYrEYpwUWCgWUSiVua3LQZIqqrMoq9beIImcE6hO0A1faBnkuMBXdo9ey/MYiMl3O4qH/\nCoDfA/ATpdSL4/f+GL4h/wel1KcAPATwsbCE0lpPzLSySLysttbpdLCx4dP3jUYDruuygaKaGbL6\n2jxeL3XGoIdKhhHwJx/JlXqexx2XFhLpdbVaZU+IDr6VxncWBLlsWUJ1MBgYnHq5XDa4TDmJZDIZ\nVKtVo+KcNJiSVw27/ojMVSbZVlZWcPPmTR7oo9GIPfSjoyPmzcOG1AktbgKTlSEp2pHRmdxZW6vV\n2JM8ODgwDJTkfamPzmKMJNestTYOjYjFYnxwCH0u93JQxEBjSEYQwbadJ/1P9hnql5QoQI6ZPKGM\nxoRchNze3sa9e/cA+AadDCalBcrJJyyjGcxtl7uZB4MBt3un0+F2r9frODg4MPrMvCUdHoezZLn8\nF4DTVrt+I1xxLCwsLCxmxaXcKRrcpShrIORyORQKBWOVW3oTrVaL/58OjZDHusmk/1nkokeSzXVd\n1Ot1PvxVhrlKKeP6lGlAFQR3dnaYs6aZPcilyuueB9OK6gczFqhynExtIy+JvDTSrax/HqSHwsom\nIIqHvJ18Ps+c+bve9S5sbm5y9HN4eMhebq1WYy8tbMgIp9PpcHQTj8eRy+XYk1xbWzMiLKrtAvjU\n2u7uLnZ2dlhe6b1L+mpWr1LunATAG+ooWqVNbsAJTUD3Jet5379/H7u7u4ZXGWbkI6MdeZat53ms\nk1qtZhTc2t7eZlmpzj1tIqPIFphcf1iEF0zZStQPk8mkEbkdHh5yX9zZ2TGyXKaloy59p+hFgBqF\nGlge9DwYDPDo0SPjRBP67PDwEPV63ShXSUaMviuvcV6QIZSTTTQaRaVS4YWPVqvFA9dxHAwGAzY8\ndHZjpVLh+5JnNc5DBwXllNy3pFzq9TobzHg8jnq9zrSGlGF/f58r7wFmIbFgWmDY/LksakUcdaFQ\nQD6fN3YFks4pZz+4mzgMmeTCrJxwY7EYHjx4wBMe7SCUqbakr52dHdRqNaMkxbQDI0j2eeSWJacl\nZRaLxfj6VLGUjMvh4SEbyIODA1SrVTZQYa5HBGkLmSwgq1Fqrbnf0TZ/+ozko3uZxpkvis6QctO1\n6DxRupdWq8VOUbvdnphgFikbYItzWVhYWFwZXEoPHTA9y+FwyF7vwcEBp2QBMEqPAr4XRd4FHR0V\ndggmZ2g6po1W3SuVirHJyPM8Y4EnWON7nqybN4MMwek5LRLL8yzlBq7gwQLtdtsIvcnjDGa1hOl1\nyJTQbDbL3no2m8Xu7i7rcm9vj700WhRd1GKYzOaRWUiNRsOoyx2sxSM35wTL557W3mFthKG2koXi\nKKotFArodDoc2TabTfYqSc5F90v5u3QEH1EVjUbD2P0ZjUaNyExSp1KXi/R+5XiSbdlsNrG7uzuV\ntqTxLo+VXOQBNsAlNuiAGUIFawpP25U4rdLaohpZytZqtVgeolcI066/jBBsmrEl/lzmyWqtjSJb\n8vvBA4GDnTFs2en35ARDWRvVahXD4ZAHfaVSYZqABlAYJ9W8mVzBw4JpzebNvkPPg/padLuTfNP4\nf9pqP40ymzUPfhY5pVMkKRhJbQVr7ZMBD4uePKusMh1YFtyiPkmv5X4NOstWUr6L5PcBQC1aGcbF\nHrOx6K2MRRSrDwvT6rrIz2RnPU32ZRmk4PGCtMBMqakPHjwA4HOVFE3QIFuUVzkNjytzcFn7wDRc\nBlnPWjbiomWlMg0ytVaWkpYTVTQanaiJMwd+pLV+/2Plm+cKFhYWFhaXB9ZDt2AsOqUqTCzicAAL\ni0uMM3nol5pDt1gu3koG8q0kq4XFsmApFwsLC4srAmvQLSwsLK4Ilk25VAG0xo8WJ1iF1UkQVieT\nsDqZxJOik6fP8k9LXRQFAKXUD89C7j9JsDqZhNXJJKxOJmF1YsJSLhYWFhZXBNagW1hYWFwRXIRB\nf+ECrnnZYXUyCauTSVidTMLqRGDpHLqFhYWFxWJgKRcLCwuLK4KlGXSl1IeVUneVUq8rpT6/rOte\nNiilHiilfqKUelEp9cPxe2Wl1L8qpX4+fixdtJyLhlLqK0qpA6XUT8V7U/WgfPzluO/8WCn1vouT\nfHE4RSd/opTaGfeXF5VSHxWf/dFYJ3eVUr99MVIvFkqpm0qpf1dKvaKUelkp9Qfj95/ovnIalmLQ\nlVJRAH8F4CMAngXwCaXUs8u49iXFr2ut3yPSrT4P4Hta6zsAvjd+fdXxVQAfDrx3mh4+AuDO+O95\nAF9akozLxlcxqRMA+PNxf3mP1vqfAGA8fj4O4JfG3/nr8Ti7ahgA+JzW+lkAHwTw6fG9P+l9ZSqW\n5aF/AMDrWuv7WmsPwDcBPLeka78V8ByAr42ffw3A71ygLEuB1vo/ATwKvH2aHp4D8HXt478BFJVS\n15Yj6fJwik5Ow3MAvqm17mmt/w/A6/DH2ZWC1rqitf7f8XMXwKsAtvCE95XTsCyDvgXgF+L19vi9\nJxEawL8opX6klHp+/N6G1royfr4HYONiRLtwnKaHJ73/fGZMH3xF0HFPnE6UUs8AeC+A78P2lamw\ni6LLx4e01u+DHxp+Win1q/JD7acdPfGpR1YPjC8BeBuA9wCoAPizixXnYqCUygL4FoDPaq0b8jPb\nV06wLIO+A+CmeH1j/N4TB631zvjxAMA/wg+T9yksHD8eXJyEF4rT9PDE9h+t9b7Weqi1HgH4G5zQ\nKk+MTpRSDnxj/g2t9bfHb9u+MgXLMug/AHBHKXVLKRWHv5jz3SVd+9JAKZVRSuXoOYDfAvBT+Lr4\n5PjfPgngOxcj4YXjND18F8DvjzMYPgigLsLtK40A//u78PsL4Ovk40qphFLqFvxFwP9ZtnyLhvJP\nXfkygFe11l8UH9m+Mg3yANtF/gH4KIDXANwD8IVlXfcy/QG4DeCl8d/LpAcAK/BX6n8O4N8AlC9a\n1iXo4u/gUwh9+Dznp07TAwAFP0vqHoCfAHj/Rcu/RJ387fiefwzfWF0T//+FsU7uAvjIRcu/IJ18\nCD6d8mMAL47/Pvqk95XT/uxOUQsLC4srArsoamFhYXFFYA26hYWFxRWBNegWFhYWVwTWoFtYWFhc\nEViDbmFhYXFFYA26hYWFxRWMDpN3AAAAF0lEQVSBNegWFhYWVwTWoFtYWFhcEfw/2rPA99hdi9AA\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "tags": []
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_conditional_generation(model_G, fix_number=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "g6Mz3EymD1Sx"
   },
   "source": [
    "# Cheating by using labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "7uzx3xZCD1Sx"
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import normalized_mutual_info_score\n",
    "\n",
    "def train_G_labels(model, data_loader, num_epochs, beta=1, verbose=True):\n",
    "    nmi_scores = []\n",
    "    model.train(True)\n",
    "    NMI_history = []\n",
    "    for epoch in range(num_epochs):\n",
    "        \n",
    "        for i, (x, labels) in enumerate(data_loader):\n",
    "            # Forward pass\n",
    "            x = x.to(device).view(-1, image_size)\n",
    "            labels = labels.to(device)\n",
    "            x_reconst, mu, log_var, log_p = model(x)\n",
    "            p = torch.exp(log_p)\n",
    "            \n",
    "            reconst_loss = F.binary_cross_entropy(x_reconst, x, reduction='sum')\n",
    "            kl_div = - 0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp())\n",
    "            NMI = normalized_mutual_info_score(labels.cpu().numpy(), p.cpu().max(1)[1].numpy())\n",
    "            NMI_history.append(NMI)\n",
    "            \n",
    "            label_loss = F.nll_loss(log_p, labels)\n",
    "            \n",
    "            # Backprop and optimize\n",
    "            loss = reconst_loss + kl_div + beta * label_loss\n",
    "            optimizer.zero_grad()\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "            \n",
    "            if verbose:\n",
    "                if (i+1) % 100 == 0:\n",
    "                    print (\"Epoch[{}/{}], Step [{}/{}], Reconst Loss: {:.4f}, KL Div: {:.4f}, Label Loss: {:.4f}\" \n",
    "                           .format(epoch+1, num_epochs, i+1, len(data_loader), reconst_loss.item()/batch_size,\n",
    "                                   kl_div.item()/batch_size, label_loss/batch_size))\n",
    "                    print('NMI : ',NMI)\n",
    "            \n",
    "    return NMI_history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "LQ-PQzudD1Sz"
   },
   "outputs": [],
   "source": [
    "n_classes = 10\n",
    "learning_rate = 0.01\n",
    "model_G = VAE_Gumbel(z_dim=z_dim).to(device)\n",
    "optimizer = torch.optim.Adam(model_G.parameters(), lr=learning_rate)\n",
    "\n",
    "NMI = train_G_labels(model_G, data_loader, num_epochs=5, beta=10, verbose=True)\n",
    "plt.plot(NMI)\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('NMI')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "GYETkluIaCf7"
   },
   "outputs": [],
   "source": [
    "plot_reconstruction(model_G)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "khW4etM1D1S2"
   },
   "outputs": [],
   "source": [
    "plot_conditional_generation(model_G)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "R-Dv1DrhD1S5"
   },
   "outputs": [],
   "source": [
    "plot_conditional_generation(model_G, fix_number=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "dbppYbX9D1S9"
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "name": "VAE_filled.ipynb",
   "provenance": [],
   "version": "0.3.2"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
